Module: Nuntius::Concerns::EventsTransaction

Extended by:
ActiveSupport::Concern
Defined in:
app/models/nuntius/concerns/events_transaction.rb

Instance Method Summary collapse

Instance Method Details

#dispatch_nuntius_eventsObject



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'app/models/nuntius/concerns/events_transaction.rb', line 32

def dispatch_nuntius_events
  Nuntius::Event
    .where(transitionable_type: self.class.name, transitionable_id: id)
    .includes(:transitionable)
    .select(:transition_event, :transition_attribute, :transitionable_type, :transitionable_id).distinct.each do |event|
    Nuntius.event(event.transition_event.to_sym, event.transitionable)

    # Immediately cleanup the events after dispatching
    Nuntius::Event.where(transitionable_type: self.class.name, transitionable_id: id,
      transition_event: event.transition_event.to_s,
      transition_attribute: event.transition_attribute).delete_all
  end
end