module Homie
Constants
- VERSION
Public Instance Methods
broadcast(event, *args)
click to toggle source
# File lib/homie.rb, line 28 def broadcast(event, *args) observers[event].each { |observer| observer.call(*args) } self end
failed(*args)
click to toggle source
# File lib/homie.rb, line 38 def failed(*args) broadcast(:failed, *args) end
on(event, *objects, &block)
click to toggle source
# File lib/homie.rb, line 16 def on(event, *objects, &block) raise(Homie::EventNotSpecifiedError) unless event && !event.empty? raise(Homie::ObserverNotPassedError) unless objects.all? { |object| object.respond_to?(:call) } raise(Homie::ObserverNotPassedError) if (_observers = [*objects, block].compact).size == 0 observers[event] += _observers self end
succeeded(*args)
click to toggle source
# File lib/homie.rb, line 34 def succeeded(*args) broadcast(:succeeded, *args) end
Private Instance Methods
observers()
click to toggle source
# File lib/homie.rb, line 44 def observers @observers ||= Hash.new { |hash, event| hash[event] = [] } end