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