Class: Dotpretty::StateMachine::StateMachineBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/dotpretty/state_machine/state_machine_builder.rb

Defined Under Namespace

Classes: StateDetailsBuilder

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(observer) ⇒ StateMachineBuilder

Returns a new instance of StateMachineBuilder.



55
56
57
58
# File 'lib/dotpretty/state_machine/state_machine_builder.rb', line 55

def initialize(observer)
  self.observer = observer
  self.states = {}
end

Class Method Details

.build(observer, &definition) ⇒ Object



49
50
51
52
53
# 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

Instance Method Details

#buildObject



66
67
68
69
70
71
72
# 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) ⇒ Object



60
61
62
63
64
# 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