class Support::Events::DomainEventPublisher
Attributes
subscribers[R]
Public Class Methods
cancel_subscription(subscriber)
click to toggle source
# File lib/hecks/domain/templates/lib/support/events/domain_event_publisher.rb, line 18 def self.cancel_subscription(subscriber) instance.subscribers.delete(subscriber) end
emit(command, &block)
click to toggle source
# File lib/hecks/domain/templates/lib/support/events/domain_event_publisher.rb, line 10 def self.emit(command, &block) instance.emit(DomainEvent.new(command), &block) end
new()
click to toggle source
# File lib/hecks/domain/templates/lib/support/events/domain_event_publisher.rb, line 6 def initialize @subscribers = [] end
subscribe(subscriber)
click to toggle source
# File lib/hecks/domain/templates/lib/support/events/domain_event_publisher.rb, line 14 def self.subscribe(subscriber) instance.subscribers << subscriber end
Public Instance Methods
emit(domain_event) { |domain_event| ... }
click to toggle source
# File lib/hecks/domain/templates/lib/support/events/domain_event_publisher.rb, line 22 def emit(domain_event, &block) yield domain_event if block @subscribers.each do |subscriber| next unless subscriber.domain_event == '*' || subscriber.domain_event == domain_event.type subscriber.notify(domain_event) end end