awesome-repositories.com
Blog
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
aasm avatar

aasm/aasm

0
View on GitHub↗
5,219 Stars·648 Forks·Ruby·MIT·3 Aufrufe

Aasm

Diese Bibliothek bietet ein Framework zur Definition von Finite State Machines innerhalb von Ruby-Klassen, um komplexe Objekt-Lebenszyklen zu verwalten. Sie fungiert als deklarative Workflow-Engine, die es Entwicklern ermöglicht, Objektzustände, Ereignisse und Übergänge über eine lesbare Domain-Specific Language (DSL) zu modellieren. Durch die direkte Integration in Datenbank-Persistenzschichten stellt das Framework sicher, dass Zustandsänderungen mit den gespeicherten Datensätzen synchronisiert werden, während die Datenintegrität durch Transaktionsmanagement und Row-Locking gewahrt bleibt.

Die Bibliothek zeichnet sich dadurch aus, dass sie strikte Geschäftsregeln durch bedingte Transition-Guards erzwingt und direkte Zustandsänderungen verhindert, wodurch sichergestellt wird, dass alle Lebenszyklusänderungen ausschließlich über definierte Ereignisse erfolgen. Sie unterstützt mehrere unabhängige State Machines innerhalb einer Klasse, indem sie diese auf unterschiedliche Datenbankfelder abbildet, was eine isolierte Lebenszyklussteuerung ermöglicht. Zudem generiert sie automatisch dynamische Instanzmethoden für Zustandsabfragen und Ereignisauslöser sowie Datenbank-Query-Scopes, die das Filtern von Objekten basierend auf ihrem aktuellen Status vereinfachen.

Über das reine Lebenszyklusmanagement hinaus enthält das Framework Hilfsmittel zur Lokalisierung von Zustandsnamen für mehrsprachige Schnittstellen und bietet Hooks zur Ausführung benutzerdefinierter Logik vor oder nach Übergängen. Es bietet zudem spezialisierte Test-Matcher, um State-Machine-Konfigurationen und Übergangslogik innerhalb automatisierter Test-Suites zu verifizieren. Das Projekt enthält Tools zum Kompilieren von Quellcode und Konfigurationen in strukturierte Dokumentationen zur Systemreferenz.

Features

  • State Machine Logic - Provides a framework for defining finite state machines within Ruby classes to manage object lifecycles.
  • Business Logic Extensions - Restricts object transitions to predefined paths to ensure business logic compliance throughout the lifecycle.
  • Active Record Mappers - Integrates state machine transitions directly with database records using Active Record patterns to ensure data consistency.
  • Database Integration Layers - Synchronizes state changes with database records using transactions and locking to maintain data integrity.
  • State Modification Restrictions - Prevents direct modification of state storage columns to ensure all lifecycle changes occur exclusively through defined events.
  • Declarative Workflow Engines - Models complex object workflows using a declarative domain-specific language to enforce transition rules.
  • Transition Guards - Enforces business rules by evaluating conditional predicates that must be satisfied before a state transition is permitted.
  • Application State Machines - Allows configuration of states, events, and transitions within a class to control object behavior.
  • State Machine Integrations - Integrates state machine logic with database persistence layers to ensure integrity during transitions.
  • State Transition Mapping - Maps trigger events to source and destination states to define and enforce consistent object lifecycle flows.
  • Conditional Transition Guards - Enforces business rules by evaluating conditional predicates before permitting state transitions.
  • Transactional State Persistence - Ensures data consistency by synchronizing state changes with database records using transactional persistence.
  • Query Scopes - Automatically generates reusable database query constraints for filtering objects based on their current lifecycle state.
  • State Querying - Automatically generates database query scopes for filtering objects based on their current lifecycle status.
  • Domain Specific Languages - Provides a declarative domain-specific language for defining complex state machine rules and transitions.
  • State Transition Lifecycle Hooks - Executes custom callback logic automatically during specific phases of state transitions.
  • State Machine Logic Verifications - Offers specialized testing matchers to verify state machine configurations and transition logic within automated test suites.
  • Multi-Machine Configurations - Supports hosting multiple independent state machines within a single class by mapping them to distinct database fields.
  • State Lifecycle Callbacks - Triggers custom logic automatically before or after state transitions to perform lifecycle side effects.
  • State Transition Validation - Provides utilities to inspect and retrieve valid events available for the current state to determine permissible next steps.
  • Lifecycle State Verifications - Provides dynamic methods to verify current states and check if specific lifecycle events are permitted.
  • Model Enhancements - State machine implementation for Ruby classes.
  • Ruby Frameworks and Tools - State machine library for Ruby.
  • State Machines - State machine implementation for Ruby and Rails.

Star-Verlauf

Star-Verlauf für aasm/aasmStar-Verlauf für aasm/aasm

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Häufig gestellte Fragen

Was macht aasm/aasm?

Diese Bibliothek bietet ein Framework zur Definition von Finite State Machines innerhalb von Ruby-Klassen, um komplexe Objekt-Lebenszyklen zu verwalten. Sie fungiert als deklarative Workflow-Engine, die es Entwicklern ermöglicht, Objektzustände, Ereignisse und Übergänge über eine lesbare Domain-Specific Language (DSL) zu modellieren. Durch die direkte Integration in Datenbank-Persistenzschichten stellt das Framework sicher, dass Zustandsänderungen mit den gespeicherten…

Was sind die Hauptfunktionen von aasm/aasm?

Die Hauptfunktionen von aasm/aasm sind: State Machine Logic, Business Logic Extensions, Active Record Mappers, Database Integration Layers, State Modification Restrictions, Declarative Workflow Engines, Transition Guards, Application State Machines.

Welche Open-Source-Alternativen gibt es zu aasm/aasm?

Open-Source-Alternativen zu aasm/aasm sind unter anderem: dotnet-state-machine/stateless — Stateless is a .NET state machine library used to manage complex object behaviors and lightweight workflows through C#… pytransitions/transitions — Transitions is an object-oriented finite state machine library for Python. It provides a framework for managing valid… jakesgordon/javascript-state-machine — This library is a finite state machine framework for JavaScript designed to manage application states and valid… pluginaweek/state_machine — This project is a Ruby library for defining and managing object lifecycles through states, events, and transition… day8/re-frame — re-frame is a functional framework for building single-page applications in ClojureScript. It provides a centralized,… gaarason/database-all — This project is a Java-based object-relational mapping framework that utilizes the active record pattern to simplify…

Open-Source-Alternativen zu Aasm

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Aasm.
  • dotnet-state-machine/statelessAvatar von dotnet-state-machine

    dotnet-state-machine/stateless

    6,191Auf GitHub ansehen↗

    Stateless is a .NET state machine library used to manage complex object behaviors and lightweight workflows through C# code. It functions as an asynchronous workflow engine that executes state transitions, guards, and entry-exit actions using asynchronous tasks. The library implements a hierarchical state machine, allowing child states to inherit transitions and properties from parent superstates. It includes a state persistence framework that decouples state tracking from machine logic by reading and writing the current state to external properties or databases. Additionally, it features a g

    C#
    Auf GitHub ansehen↗6,191
  • pytransitions/transitionsAvatar von pytransitions

    pytransitions/transitions

    6,548Auf GitHub ansehen↗

    Transitions is an object-oriented finite state machine library for Python. It provides a framework for managing valid states and the logic for moving between them, including implementations for asynchronous state machines and thread-safe state managers. The library supports hierarchical state machines that allow states to be nested to organize complex subtasks and logical contexts. It includes tools for generating visual diagrams of states and transitions to document machine logic. The project covers state management primitives such as lifecycle callbacks, conditional transition guarding, an

    Python
    Auf GitHub ansehen↗6,548
  • jakesgordon/javascript-state-machineAvatar von jakesgordon

    jakesgordon/javascript-state-machine

    8,751Auf GitHub ansehen↗

    This library is a finite state machine framework for JavaScript designed to manage application states and valid transitions. It provides a system for executing state changes with lifecycle hooks, conditional guards, and transition cancellation. The project is distinguished by its ability to inject state machine logic and transition capabilities directly into existing JavaScript class instances or objects. It also includes a visualization tool that exports state configurations into Graphviz DOT language for auditing system logic. The framework covers asynchronous transition execution and paus

    JavaScript
    Auf GitHub ansehen↗8,751
  • pluginaweek/state_machineAvatar von pluginaweek

    pluginaweek/state_machine

    3,722Auf GitHub ansehen↗

    This project is a Ruby library for defining and managing object lifecycles through states, events, and transition rules. It functions as a declarative workflow engine that enforces business logic by restricting attribute changes to predefined, valid paths within Ruby classes. The library distinguishes itself through deep integration with database persistence layers, allowing it to automatically synchronize state changes with data models, validation frameworks, and transaction management. It supports dynamic configuration, enabling the construction of lifecycle rules at runtime from external d

    Ruby
    Auf GitHub ansehen↗3,722
Alle 30 Alternativen zu Aasm anzeigen→