module Cry
Constants
- VERSION
Public Instance Methods
on(*events, &block)
click to toggle source
# File lib/cry.rb, line 4 def on(*events, &block) raise ArgumentError, "must specify at least one event" unless events.any? events.each { |event| listeners_for(event) << block } self end
Private Instance Methods
listeners()
click to toggle source
# File lib/cry.rb, line 26 def listeners @listeners ||= {} end
listeners_for(event)
click to toggle source
# File lib/cry.rb, line 30 def listeners_for(event) listeners[event.to_sym] ||= [] end
publish(event, *args)
click to toggle source
# File lib/cry.rb, line 14 def publish(event, *args) listeners_for(event).each do |listener| listener.call(*args) end end
publish!(event, *args)
click to toggle source
# File lib/cry.rb, line 20 def publish!(event, *args) raise NoListenersError, "nothing listening for #{event}" \ unless listeners_for(event).any? publish(event, *args) end