class Obake::FiniteStateMachine
Attributes
current_state[R]
Public Class Methods
new()
click to toggle source
# File lib/obake/finite_state_machine.rb, line 5 def initialize @states = {} end
Public Instance Methods
add_state(state)
click to toggle source
# File lib/obake/finite_state_machine.rb, line 9 def add_state(state) state.instance_variable_set(:@fsm, self) @states[state.id] = state end
change_state(transition)
click to toggle source
# File lib/obake/finite_state_machine.rb, line 14 def change_state(transition) if @current_state @current_state.on_exit end @current_state = @states[transition.to] @current_state.on_enter(transition.data) end