Class: StrictMachine::Base

Inherits:
Object show all
Includes:
MountStateMachine::InstanceMethods
Defined in:
lib/strict_machine/base.rb

Class Method Summary collapse

Methods included from MountStateMachine::InstanceMethods

#state, #state_attr, #states, #trigger

Methods included from MountStateMachine::InstanceVarPersistence

#current_state_attr_value, #write_initial_state, #write_state

Class Method Details

.strict_machine(state_attr = "state", &block) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/strict_machine/base.rb', line 7

def self.strict_machine(state_attr = "state", &block)
  dc = DefinitionContext.new
  dc.instance_eval(&block)

  stored = self

  metaclass.instance_eval do
    define_method(:definition) { dc }
    define_method(:strict_machine_class) { stored }
    define_method(:strict_machine_attr) { state_attr }
  end
end