class Aquam::State
Public Class Methods
new(object)
click to toggle source
# File lib/aquam/state.rb, line 3 def initialize(object) @object = object end
state_machine()
click to toggle source
# File lib/aquam/state.rb, line 12 def state_machine @state_machine end
use_machine(state_machine)
click to toggle source
# File lib/aquam/state.rb, line 16 def use_machine(state_machine) @state_machine ||= begin validate_state_machine state_machine define_event_methods state_machine state_machine end end
Private Class Methods
define_event_methods(machine)
click to toggle source
# File lib/aquam/state.rb, line 27 def define_event_methods(machine) machine.events.keys.each do |event| define_method event do fail Aquam::InvalidTransitionError end end end
validate_state_machine(machine)
click to toggle source
# File lib/aquam/state.rb, line 35 def validate_state_machine(machine) unless machine && machine.ancestors.include?(Aquam::Machine) fail Aquam::InvalidStateMachineError end end
Public Instance Methods
state_machine()
click to toggle source
# File lib/aquam/state.rb, line 7 def state_machine self.class.state_machine || fail(Aquam::InvalidStateMachineError) end