module Publican

Constants

NoListenersError

Public Instance Methods

on(*events, &block) click to toggle source
# File lib/publican.rb, line 4
def on(*events, &block)
  @_publican_listeners ||= {}

  events.each do |event|
    (@_publican_listeners[event] ||= []) << block
  end

  self
end

Protected Instance Methods

publish(event, *args) click to toggle source
# File lib/publican.rb, line 16
def publish(event, *args)
  listeners = @_publican_listeners && @_publican_listeners[event] || []
  listeners.each { |listener| listener.call(*args) }
  !listeners.empty?
end
publish!(event, *args) click to toggle source
# File lib/publican.rb, line 22
def publish!(event, *args)
  publish(event, *args) or raise NoListenersError, "No listeners are listening for event #{event}"
end