module StrictMachine::MountStateMachine::InstanceMethods
Public Instance Methods
state()
click to toggle source
# File lib/strict_machine/mount_state_machine/instance_methods.rb, line 16 def state write_initial_state if current_state_attr_value.nil? current_state_attr_value end
state_attr()
click to toggle source
# File lib/strict_machine/mount_state_machine/instance_methods.rb, line 22 def state_attr self.class.strict_machine_attr.to_s end
states()
click to toggle source
# File lib/strict_machine/mount_state_machine/instance_methods.rb, line 26 def states definition.states end
trigger(*transitions)
click to toggle source
# File lib/strict_machine/mount_state_machine/instance_methods.rb, line 10 def trigger(*transitions) transitions.map { |t| change_state(t, state) } true end
Private Instance Methods
change_state(trigger, current_state_name)
click to toggle source
# File lib/strict_machine/mount_state_machine/instance_methods.rb, line 36 def change_state(trigger, current_state_name) new_state = nil duration = Benchmark.measure do is_bang, transition = current_state_obj.get_transition(trigger) if transition.guarded? && !is_bang raise GuardedTransitionError unless public_send(transition.guard) end new_state = definition.get_state_by_name(transition.to) new_state.run_on_entries(self, current_state_name, trigger.to_sym) end.real definition.run_transitions( self, current_state_name, new_state.name, trigger.to_sym, duration ) write_state(new_state.name) end
current_state_obj()
click to toggle source
# File lib/strict_machine/mount_state_machine/instance_methods.rb, line 57 def current_state_obj definition.get_state_by_name(current_state_attr_value) end
definition()
click to toggle source
# File lib/strict_machine/mount_state_machine/instance_methods.rb, line 32 def definition self.class.strict_machine_class.definition end