module Signals::Publisher::InstanceMethods
Public Instance Methods
broadcast(event, *args)
click to toggle source
Broadcasts an event to all of the subscribed listeners
# File lib/signals/publisher.rb, line 11 def broadcast(event, *args) listeners.each do |listener| listener.call(event, *args) end args.one? ? args.first : args end
listeners()
click to toggle source
All of the listeners subscribed to a publisher @return [Set] a unique set of listeners
# File lib/signals/publisher.rb, line 38 def listeners @listeners ||= Set.new end
on(event, &block)
click to toggle source
Creates a one off listener that will respond to the event provided only @param [Object] event the event that is triggered
# File lib/signals/publisher.rb, line 20 def on(event, &block) listeners.add(BlockListener.new(event, &block)) end
subscribe(listener)
click to toggle source
Subscribe a listener to the publisher @param [Object] listener
# File lib/signals/publisher.rb, line 26 def subscribe(listener) listeners.add(listener) end
unsubscribe(listener)
click to toggle source
Unsubscribe a listener from the publisher @param [Object] listener
# File lib/signals/publisher.rb, line 32 def unsubscribe(listener) listeners.delete(listener) end