module Moory::Afferent

Attributes

state[RW]
transitions[RW]

Public Instance Methods

awaits() click to toggle source
# File lib/moory/machine.rb, line 22
def awaits
  transitions.egresses(state:state)
end
issue(stimulus) click to toggle source
# File lib/moory/machine.rb, line 15
def issue(stimulus)
  if response = transitions.response(origin: state, stimulus: stimulus)
    honour(response)
    state
  end
end
understand?(stimulus) click to toggle source
# File lib/moory/machine.rb, line 26
def understand?(stimulus)
  awaits.include?(stimulus)
end

Private Instance Methods

honour(response) click to toggle source
# File lib/moory/machine.rb, line 36
def honour(response)
  settle_accordingly(response)
end
settle_accordingly(response) click to toggle source
# File lib/moory/machine.rb, line 32
def settle_accordingly(response)
  @state = response[:settlement]
end