awesome-repositories.com
Blog
awesome-repositories.com

Descoperă cele mai bune repository-uri open source cu căutare AI.

ExploreazăCăutări recomandateAlternative open-sourceSoftware self-hostedBlogHartă site
ProiectDespreCum realizăm clasamentulPresăServer MCP
LegalConfidențialitateTermeni
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
aasm avatar

aasm/aasm

0
View on GitHub↗
5,219 stele·648 fork-uri·Ruby·MIT·3 vizualizări

Aasm

Această bibliotecă oferă un framework pentru definirea mașinilor cu stări finite (finite state machines) în interiorul claselor Ruby pentru a gestiona cicluri de viață complexe ale obiectelor. Funcționează ca un motor de workflow declarativ, permițând dezvoltatorilor să modeleze stările, evenimentele și tranzițiile obiectelor printr-un limbaj specific domeniului (DSL) ușor de citit. Prin integrarea directă cu straturile de persistență a bazei de date, framework-ul asigură sincronizarea schimbărilor de stare cu înregistrările din stocare, menținând în același timp integritatea datelor prin gestionarea tranzacțiilor și blocarea rândurilor.

Biblioteca se distinge prin impunerea unor reguli de business stricte prin intermediul gardelor de tranziție condiționale și prevenirea modificării directe a stării, asigurându-se că toate schimbările ciclului de viață au loc exclusiv prin evenimente definite. Suportă mai multe mașini cu stări independente în cadrul unei singure clase prin maparea lor la câmpuri distincte din baza de date, oferind un control izolat al ciclului de viață. Mai mult, generează automat metode de instanță dinamice pentru interogarea stărilor și declanșarea evenimentelor, alături de scope-uri de interogare a bazei de date care simplifică filtrarea obiectelor pe baza stării lor curente.

Dincolo de gestionarea de bază a ciclului de viață, framework-ul include utilitare pentru localizarea numelor stărilor pentru a susține interfețe multilingve și oferă hook-uri pentru executarea de logică personalizată înainte sau după tranziții. De asemenea, oferă matchere de testare specializate pentru a verifica configurațiile mașinii cu stări și logica de tranziție în cadrul suitelor de teste automatizate. Proiectul include instrumente pentru compilarea codului sursă și a configurațiilor în documentație structurată pentru a asista referința sistemului.

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.

Istoric stele

Graficul istoricului de stele pentru aasm/aasmGraficul istoricului de stele pentru aasm/aasm

Căutare AI

Explorează mai multe repository-uri excelente

Descrie ce ai nevoie în limbaj simplu — AI-ul sortează mii de proiecte open source selectate în funcție de relevanță.

Start searching with AI

Alternative open-source pentru Aasm

Proiecte open-source similare, clasificate după numărul de funcționalități comune cu Aasm.
  • dotnet-state-machine/statelessAvatar dotnet-state-machine

    dotnet-state-machine/stateless

    6,191Vezi pe GitHub↗

    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#
    Vezi pe GitHub↗6,191
  • pytransitions/transitionsAvatar pytransitions

    pytransitions/transitions

    6,548Vezi pe GitHub↗

    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
    Vezi pe GitHub↗6,548
  • jakesgordon/javascript-state-machineAvatar jakesgordon

    jakesgordon/javascript-state-machine

    8,751Vezi pe GitHub↗

    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
    Vezi pe GitHub↗8,751
  • pluginaweek/state_machineAvatar pluginaweek

    pluginaweek/state_machine

    3,722Vezi pe GitHub↗

    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
    Vezi pe GitHub↗3,722
Vezi toate cele 30 alternative pentru Aasm→

Întrebări frecvente

Ce face aasm/aasm?

Această bibliotecă oferă un framework pentru definirea mașinilor cu stări finite (finite state machines) în interiorul claselor Ruby pentru a gestiona cicluri de viață complexe ale obiectelor. Funcționează ca un motor de workflow declarativ, permițând dezvoltatorilor să modeleze stările, evenimentele și tranzițiile obiectelor printr-un limbaj specific domeniului (DSL) ușor de citit. Prin integrarea directă cu straturile de persistență a bazei de date, framework-ul asigură…

Care sunt principalele funcționalități ale aasm/aasm?

Principalele funcționalități ale aasm/aasm sunt: State Machine Logic, Business Logic Extensions, Active Record Mappers, Database Integration Layers, State Modification Restrictions, Declarative Workflow Engines, Transition Guards, Application State Machines.

Care sunt câteva alternative open-source pentru aasm/aasm?

Alternativele open-source pentru aasm/aasm includ: 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…