module Wisper::Publisher
Public Instance Methods
listeners()
click to toggle source
# File lib/wisper/publisher.rb, line 3 def listeners registrations.map(&:listener).freeze end
on(*events, &block)
click to toggle source
subscribe a block
@example
my_publisher.on(:order_created) { |args| ... }
@return [self]
# File lib/wisper/publisher.rb, line 25 def on(*events, &block) raise ArgumentError, 'must give at least one event' if events.empty? raise ArgumentError, 'must pass a block' if !block local_registrations << BlockRegistration.new(block, on: events) self end
subscribe(listener, options = {})
click to toggle source
subscribe a listener
@example
my_publisher.subscribe(MyListener.new)
@return [self]
# File lib/wisper/publisher.rb, line 13 def subscribe(listener, options = {}) raise ArgumentError, "#{__method__} does not take a block, did you mean to call #on instead?" if block_given? local_registrations << ObjectRegistration.new(listener, options) self end