class ActiveRecordImporter::TransitionProcessor

Attributes

column[R]
new_state[R]
object[R]

Public Class Methods

new(object, new_state, column = :state) click to toggle source
# File lib/active_record_importer/transition_processor.rb, line 6
def initialize(object, new_state, column = :state)
  @object = object
  @new_state = new_state
  @column = column
end

Public Instance Methods

transit() click to toggle source
# File lib/active_record_importer/transition_processor.rb, line 12
def transit
  fire_event!(transit_event)
  true
end

Private Instance Methods

fire_event!(event) click to toggle source
# File lib/active_record_importer/transition_processor.rb, line 19
def fire_event!(event)
  fail Errors::InvalidTransition if event.blank?
  object.send(event)
end
state_transitions() click to toggle source
# File lib/active_record_importer/transition_processor.rb, line 31
def state_transitions
  object.send("#{column}_transitions")
end
state_was() click to toggle source
# File lib/active_record_importer/transition_processor.rb, line 35
def state_was
  object.send("#{column}_was")
end
transit_event() click to toggle source
# File lib/active_record_importer/transition_processor.rb, line 24
def transit_event
  state_transitions.each do |trans|
    return trans.event if trans.from == state_was && trans.to == new_state
  end
  nil
end