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