Module: EndState::StateMachineConfiguration
- Included in:
- StateMachine
- Defined in:
- lib/end_state/state_machine_configuration.rb
Instance Method Summary collapse
- #end_states ⇒ Object
- #events ⇒ Object
- #initial_state ⇒ Object
- #mode ⇒ Object
- #set_initial_state(state) ⇒ Object
- #start_states ⇒ Object
- #state_attribute(attribute) ⇒ Object
- #states ⇒ Object
- #store_states_as_strings ⇒ Object
- #store_states_as_strings! ⇒ Object
- #transition(state_map) {|configuration| ... } ⇒ Object
- #transition_configurations ⇒ Object
- #treat_all_transitions_as_hard! ⇒ Object
Instance Method Details
permalink #end_states ⇒ Object
[View source]
66 67 68 |
# File 'lib/end_state/state_machine_configuration.rb', line 66 def end_states transition_configurations.end_states end |
permalink #events ⇒ Object
[View source]
54 55 56 |
# File 'lib/end_state/state_machine_configuration.rb', line 54 def events transition_configurations.events end |
permalink #initial_state ⇒ Object
[View source]
6 7 8 |
# File 'lib/end_state/state_machine_configuration.rb', line 6 def initial_state @initial_state end |
permalink #mode ⇒ Object
[View source]
18 19 20 |
# File 'lib/end_state/state_machine_configuration.rb', line 18 def mode @mode end |
permalink #set_initial_state(state) ⇒ Object
[View source]
10 11 12 |
# File 'lib/end_state/state_machine_configuration.rb', line 10 def set_initial_state(state) @initial_state = state.to_sym end |
permalink #start_states ⇒ Object
[View source]
62 63 64 |
# File 'lib/end_state/state_machine_configuration.rb', line 62 def start_states transition_configurations.start_states end |
permalink #state_attribute(attribute) ⇒ Object
[View source]
49 50 51 52 |
# 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 |
permalink #states ⇒ Object
[View source]
58 59 60 |
# File 'lib/end_state/state_machine_configuration.rb', line 58 def states (start_states + end_states).uniq end |
permalink #store_states_as_strings ⇒ Object
[View source]
26 27 28 |
# File 'lib/end_state/state_machine_configuration.rb', line 26 def store_states_as_strings !!@store_states_as_strings end |
permalink #store_states_as_strings! ⇒ Object
[View source]
22 23 24 |
# File 'lib/end_state/state_machine_configuration.rb', line 22 def store_states_as_strings! @store_states_as_strings = true end |
permalink #transition(state_map) {|configuration| ... } ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# 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 |
permalink #transition_configurations ⇒ Object
[View source]
45 46 47 |
# File 'lib/end_state/state_machine_configuration.rb', line 45 def transition_configurations @transition_configurations ||= TransitionConfigurationSet.new end |
permalink #treat_all_transitions_as_hard! ⇒ Object
[View source]
14 15 16 |
# File 'lib/end_state/state_machine_configuration.rb', line 14 def treat_all_transitions_as_hard! @mode = :hard end |