class Dotpretty::StateMachine::StateMachineBuilder::StateDetailsBuilder
Attributes
entry_action[RW]
exit_action[RW]
name[RW]
transitions[RW]
Public Class Methods
build(name, &definition)
click to toggle source
# File lib/dotpretty/state_machine/state_machine_builder.rb, line 9 def self.build(name, &definition) builder = StateDetailsBuilder.new(name) builder.instance_eval(&definition) return builder.build end
new(name)
click to toggle source
# File lib/dotpretty/state_machine/state_machine_builder.rb, line 15 def initialize(name) self.name = name self.transitions = {} end
Public Instance Methods
build()
click to toggle source
# File lib/dotpretty/state_machine/state_machine_builder.rb, line 20 def build StateDetails.new({ entry_action: entry_action, exit_action: exit_action, transitions: transitions }) end
on_entry(action)
click to toggle source
# File lib/dotpretty/state_machine/state_machine_builder.rb, line 35 def on_entry(action) self.entry_action = action end
on_exit(action)
click to toggle source
# File lib/dotpretty/state_machine/state_machine_builder.rb, line 39 def on_exit(action) self.exit_action = action end
transition(event, next_state_name, action = nil)
click to toggle source
# File lib/dotpretty/state_machine/state_machine_builder.rb, line 28 def transition(event, next_state_name, action = nil) transitions[event] = { action: action, next_state_name: next_state_name } end