class DatashiftJourney::StateMachines::Sequence
Attributes
entry_state[R]
exit_state[R]
id[R]
split[RW]
states[RW]
trigger_method[RW]
trigger_value[RW]
Public Class Methods
new(states, id: '', entry_state: nil, exit_state: nil, trigger_value: nil, trigger_method: nil, split: false)
click to toggle source
rubocop:disable Metrics/ParameterLists
# File lib/datashift_journey/state_machines/sequence.rb, line 34 def initialize(states, id: '', entry_state: nil, exit_state: nil, trigger_value: nil, trigger_method: nil, split: false) @states = [*states] @id = id @entry_state = entry_state @exit_state = exit_state @trigger_method = trigger_method @trigger_value = trigger_value @split = split end
Public Instance Methods
add_states(list)
click to toggle source
# File lib/datashift_journey/state_machines/sequence.rb, line 45 def add_states(list) @states.concat(list.flatten) end
branch?()
click to toggle source
# File lib/datashift_journey/state_machines/sequence.rb, line 57 def branch? !trigger_value.nil? end
entry_state=(state)
click to toggle source
# File lib/datashift_journey/state_machines/sequence.rb, line 66 def entry_state=(state) @entry_state = state unless entry_state end
exit_state=(state)
click to toggle source
# File lib/datashift_journey/state_machines/sequence.rb, line 70 def exit_state=(state) @exit_state = state unless exit_state end
inspect()
click to toggle source
# File lib/datashift_journey/state_machines/sequence.rb, line 49 def inspect "#{self.class.name}(#{id}) - #{@states.inspect} [splitter = #{split?}]" end
split?()
click to toggle source
# File lib/datashift_journey/state_machines/sequence.rb, line 53 def split? split == true end
split_entry_state()
click to toggle source
# File lib/datashift_journey/state_machines/sequence.rb, line 61 def split_entry_state return nil unless split? states.first end