class Pastafari::State
Attributes
handler[RW]
name[RW]
transitions[RW]
Public Class Methods
build(name, &block)
click to toggle source
# File lib/pastafari/state.rb, line 3 def self.build(name, &block) raise ArgumentError unless block builder = Builders::StateBuilder.new(name) builder.instance_eval(&block) builder.build end
new(name, handler, transitions)
click to toggle source
# File lib/pastafari/state.rb, line 26 def initialize(name, handler, transitions) @name = name @handler = handler @transitions = transitions || [] end
Public Instance Methods
evaluate_transitions(input)
click to toggle source
# File lib/pastafari/state.rb, line 18 def evaluate_transitions(input) transition = transitions.detect { |t| t.evaluate(input) } transition&.next_state end
process(input)
click to toggle source
# File lib/pastafari/state.rb, line 14 def process(input) handler.call(input) end