Method: EntityProjection#apply_event

Defined in:
lib/entity_projection/entity_projection.rb

#apply_event(event) ⇒ Object



134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# File 'lib/entity_projection/entity_projection.rb', line 134

def apply_event(event)
  logger.trace(tag: :apply) { "Applying event (Event class: #{event.class.name})" }
  logger.trace(tags: [:data, :message]) { event.pretty_inspect }

  handler = self.class.handler(event)

  unless handler.nil?
    public_send(handler, event)
  else
    if respond_to?(:apply)
      apply(event)
    end
  end

  logger.info(tag: :apply) { "Applied event (Event class: #{event.class.name})" }
  logger.trace(tags: [:data, :message]) { event.pretty_inspect }

  event
end