class Dotpretty::StateMachine::StateMachineBuilder

Attributes

initial_state[RW]
observer[RW]
states[RW]

Public Class Methods

build(observer, &definition) click to toggle source
# File lib/dotpretty/state_machine/state_machine_builder.rb, line 49
def self.build(observer, &definition)
  builder = Dotpretty::StateMachine::StateMachineBuilder.new(observer)
  builder.instance_eval(&definition)
  return builder.build
end
new(observer) click to toggle source
# File lib/dotpretty/state_machine/state_machine_builder.rb, line 55
def initialize(observer)
  self.observer = observer
  self.states = {}
end

Public Instance Methods

build() click to toggle source
# File lib/dotpretty/state_machine/state_machine_builder.rb, line 66
def build
  Dotpretty::StateMachine::StateMachine.new({
    initial_state: initial_state,
    observer: observer,
    states: states
  })
end
state(name, &definition) click to toggle source
# File lib/dotpretty/state_machine/state_machine_builder.rb, line 60
def state(name, &definition)
  state = StateDetailsBuilder.build(name, &definition)
  states[name] = state
  self.initial_state = name if !initial_state
end