Class: Hoodie::Machine

Inherits:
Object show all
Defined in:
lib/hoodie/utils/machine.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(transition_function, initial_state) ⇒ Machine

Returns a new instance of Machine.



51
52
53
54
# File 'lib/hoodie/utils/machine.rb', line 51

def initialize(transition_function, initial_state)
  @transition_function = transition_function
  @state = initial_state
end

Instance Attribute Details

#stateObject (readonly)

Returns the value of attribute state.



56
57
58
# File 'lib/hoodie/utils/machine.rb', line 56

def state
  @state
end

Instance Method Details

#send_input(input) ⇒ Object



58
59
60
61
# File 'lib/hoodie/utils/machine.rb', line 58

def send_input(input)
  @state, output = @transition_function.call(@state, input)
  output
end