module EndState::StateMachineConfiguration
Public Instance Methods
end_states()
click to toggle source
# File lib/end_state/state_machine_configuration.rb, line 66 def end_states transition_configurations.end_states end
events()
click to toggle source
# File lib/end_state/state_machine_configuration.rb, line 54 def events transition_configurations.events end
initial_state()
click to toggle source
# File lib/end_state/state_machine_configuration.rb, line 6 def initial_state @initial_state end
mode()
click to toggle source
# File lib/end_state/state_machine_configuration.rb, line 18 def mode @mode end
set_initial_state(state)
click to toggle source
# File lib/end_state/state_machine_configuration.rb, line 10 def set_initial_state(state) @initial_state = state.to_sym end
start_states()
click to toggle source
# File lib/end_state/state_machine_configuration.rb, line 62 def start_states transition_configurations.start_states end
state_attribute(attribute)
click to toggle source
# File lib/end_state/state_machine_configuration.rb, line 49 def state_attribute(attribute) define_method(:state) { send(attribute.to_sym) } define_method(:state=) { |val| send("#{attribute}=".to_sym, val) } end
states()
click to toggle source
# File lib/end_state/state_machine_configuration.rb, line 58 def states (start_states + end_states).uniq end
store_states_as_strings()
click to toggle source
# File lib/end_state/state_machine_configuration.rb, line 26 def store_states_as_strings !!@store_states_as_strings end
store_states_as_strings!()
click to toggle source
# File lib/end_state/state_machine_configuration.rb, line 22 def store_states_as_strings! @store_states_as_strings = true end
transition(state_map) { |configuration| ... }
click to toggle source
# File lib/end_state/state_machine_configuration.rb, line 30 def transition(state_map) event = state_map.delete(:as) event = event.to_sym unless event.nil? configuration = TransitionConfiguration.new yield configuration if block_given? state_map.each do |start_states, end_state| Array(start_states).each do |start_state| prevent_event_conflicts(start_state, event) transition_configurations.add(start_state, end_state, configuration, event) end end end
transition_configurations()
click to toggle source
# File lib/end_state/state_machine_configuration.rb, line 45 def transition_configurations @transition_configurations ||= TransitionConfigurationSet.new end
treat_all_transitions_as_hard!()
click to toggle source
# File lib/end_state/state_machine_configuration.rb, line 14 def treat_all_transitions_as_hard! @mode = :hard end
Private Instance Methods
prevent_event_conflicts(start_state, event)
click to toggle source
# File lib/end_state/state_machine_configuration.rb, line 72 def prevent_event_conflicts(start_state, event) return unless transition_configurations.event_conflicts?(start_state, event) Kernel.fail EventConflict, "Attempting to define event '#{event}' on state '#{start_state}', but it is already defined. (Check duplicates and use of 'any_state')" end