module Operate::Pubsub::Publisher
A Command
uses Publisher
to register event handlers and broadcast to them.
Public Instance Methods
broadcast(event, *args)
click to toggle source
Broadcasts an event
@example
def call # ... broadcast(:finished) end
@return [self]
# File lib/operate/pubsub/publisher.rb, line 33 def broadcast(event, *args) registrations.each do |registration| registration.broadcast(clean_event(event), *args) end self end
on(*events, &block)
click to toggle source
Subscribe a block
@example
my_publisher.on(:order_created) { |args| ... }
@return [self]
# File lib/operate/pubsub/publisher.rb, line 17 def on(*events, &block) raise ArgumentError, 'must give at least one event' if events.empty? raise ArgumentError, 'must pass a block' unless block registrations << Operate::Pubsub::Registration.new(block, on: events) self end
Private Instance Methods
clean_event(event)
click to toggle source
# File lib/operate/pubsub/publisher.rb, line 46 def clean_event(event) event.to_s.gsub('-', '_') end
registrations()
click to toggle source
# File lib/operate/pubsub/publisher.rb, line 42 def registrations @registrations ||= Set.new end