class Lab42::StateMachine::DSL

Constants

IllegalMonitorState

Attributes

current_state[R]
machine[R]

Public Class Methods

new(machine, &blk) click to toggle source
# File lib/lab42/state_machine/dsl.rb, line 21
def initialize machine, &blk 
  @machine = machine
  instance_eval(&blk)
end

Public Instance Methods

state(designation, &blk) click to toggle source
# File lib/lab42/state_machine/dsl.rb, line 8
def state designation, &blk
  @current_state = designation
  instance_eval(&blk)
end
trigger(trigger_exp, new_state = nil, &blk) click to toggle source
# File lib/lab42/state_machine/dsl.rb, line 13
def trigger trigger_exp, new_state = nil, &blk
  raise IllegalMonitorState unless current_state
  machine.add(current_state, trigger_exp, blk, new_state)
end