module AggregateRoot::OnDSL
Constants
- ANONYMOUS_CLASS
Public Instance Methods
on(*event_klasses, &block)
click to toggle source
# File lib/aggregate_root.rb, line 15 def on(*event_klasses, &block) event_klasses.each do |event_klass| name = event_klass.to_s raise(ArgumentError, "Anonymous class is missing name") if name.start_with? ANONYMOUS_CLASS handler_name = "on_#{name}" define_method(handler_name, &block) @on_methods ||= {} @on_methods[name] = handler_name private(handler_name) end end
on_methods()
click to toggle source
# File lib/aggregate_root.rb, line 28 def on_methods @on_methods ||= {} (superclass.respond_to?(:on_methods) ? superclass.on_methods : {}).merge(@on_methods) end