Module: Statecraft::Machine

Defined in:
lib/statecraft/machine.rb

Overview

The machine DSL and its compiler. A machine is declared in a dedicated class (include Statecraft::Machine), collects states, edges, events and callbacks, and compiles them into a deep-frozen graph on finalization. Guard and callback symbols resolve to instance methods of the machine class; callables are honored with a plain call and arity dispatch.

Defined Under Namespace

Modules: ClassMethods, Handlers Classes: Callback, CompiledGraph, Compiler, Edge

Constant Summary collapse

CALLBACK_PHASES =
%i[before_transition after_transition after_commit].freeze

Class Method Summary collapse

Class Method Details

.included(machine_class) ⇒ Object



24
25
26
27
# File 'lib/statecraft/machine.rb', line 24

def self.included(machine_class)
  machine_class.extend(ClassMethods)
  machine_class.extend(Diagram)
end