Module: Homie
- Defined in:
- lib/homie.rb,
lib/homie/version.rb
Defined Under Namespace
Classes: EventNotSpecifiedError, ObserverNotPassedError
Constant Summary
collapse
- VERSION =
'0.1.1'
Instance Method Summary
collapse
Instance Method Details
#broadcast(event, *args) ⇒ Object
28
29
30
31
32
|
# File 'lib/homie.rb', line 28
def broadcast(event, *args)
observers[event].each { |observer| observer.call(*args) }
self
end
|
#failed(*args) ⇒ Object
38
39
40
|
# File 'lib/homie.rb', line 38
def failed(*args)
broadcast(:failed, *args)
end
|
#on(event, *objects, &block) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
|
# 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) ⇒ Object
34
35
36
|
# File 'lib/homie.rb', line 34
def succeeded(*args)
broadcast(:succeeded, *args)
end
|