class Eventusha::Event

Public Class Methods

event_handler(handler_name) click to toggle source
# File lib/eventusha/event.rb, line 13
def self.event_handler(handler_name)
        define_method :event_handler_class do
    "EventHandlers::#{handler_name.to_s.classify}".constantize
  end
end
prepare(aggregate_id, attributes) click to toggle source
# File lib/eventusha/event.rb, line 5
def self.prepare(aggregate_id, attributes)
  new(
    aggregate_id: aggregate_id,
    data: attributes,
    name: self.name
  )
end

Public Instance Methods

method_name() click to toggle source
# File lib/eventusha/event.rb, line 19
def method_name
  name.demodulize.underscore
end
publish() click to toggle source
# File lib/eventusha/event.rb, line 23
def publish
  event_handler_class.new.send("on_#{method_name}", self)
end