Class: Eventusha::Event

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/eventusha/event.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.event_handler(handler_name) ⇒ Object



13
14
15
16
17
# 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) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/eventusha/event.rb', line 5

def self.prepare(aggregate_id, attributes)
  new(
    aggregate_id: aggregate_id,
    data: attributes,
    name: self.name
  )
end

Instance Method Details

#method_nameObject



19
20
21
# File 'lib/eventusha/event.rb', line 19

def method_name
  name.demodulize.underscore
end

#publishObject



23
24
25
# File 'lib/eventusha/event.rb', line 23

def publish
  event_handler_class.new.send("on_#{method_name}", self)
end