Module: EndState::StateMachineConfiguration

Included in:
StateMachine
Defined in:
lib/end_state/state_machine_configuration.rb

Instance Method Summary collapse

Instance Method Details

#end_statesObject

[View source]

66
67
68
# File 'lib/end_state/state_machine_configuration.rb', line 66

def end_states
  transition_configurations.end_states
end

#eventsObject

[View source]

54
55
56
# File 'lib/end_state/state_machine_configuration.rb', line 54

def events
  transition_configurations.events
end

#initial_stateObject

[View source]

6
7
8
# File 'lib/end_state/state_machine_configuration.rb', line 6

def initial_state
  @initial_state
end

#modeObject

[View source]

18
19
20
# File 'lib/end_state/state_machine_configuration.rb', line 18

def mode
  @mode
end

#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

#start_statesObject

[View source]

62
63
64
# File 'lib/end_state/state_machine_configuration.rb', line 62

def start_states
  transition_configurations.start_states
end

#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

#statesObject

[View source]

58
59
60
# File 'lib/end_state/state_machine_configuration.rb', line 58

def states
  (start_states + end_states).uniq
end

#store_states_as_stringsObject

[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

#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

#transition(state_map) {|configuration| ... } ⇒ Object

Yields:

  • (configuration)
[View source]

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

#transition_configurationsObject

[View source]

45
46
47
# File 'lib/end_state/state_machine_configuration.rb', line 45

def transition_configurations
  @transition_configurations ||= TransitionConfigurationSet.new
end

#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