Module: Bfire::PubSub::Publisher
Class Method Summary collapse
Instance Method Summary collapse
- #error? ⇒ Boolean
- #hooks ⇒ Object
-
#on(event, &block) ⇒ Object
Defines a procedure (hook) to launch when event
event
occurs. -
#trigger(event) ⇒ Object
Notify all group listeners when event
event
occurs. - #triggered_events ⇒ Object
Class Method Details
.included(mod) ⇒ Object
35 36 |
# File 'lib/bfire/pub_sub/publisher.rb', line 35 def self.included(mod) end |
Instance Method Details
#error? ⇒ Boolean
23 24 25 |
# File 'lib/bfire/pub_sub/publisher.rb', line 23 def error? triggered_events.include?(:error) end |
#hooks ⇒ Object
27 28 29 |
# File 'lib/bfire/pub_sub/publisher.rb', line 27 def hooks @hooks ||= {} end |
#on(event, &block) ⇒ Object
Defines a procedure (hook) to launch when event event
occurs.
18 19 20 21 |
# File 'lib/bfire/pub_sub/publisher.rb', line 18 def on(event, &block) hooks[event.to_sym] ||= [] hooks[event.to_sym] << block end |
#trigger(event) ⇒ Object
Notify all group listeners when event event
occurs.
5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/bfire/pub_sub/publisher.rb', line 5 def trigger(event) triggered_events.push(event) engine.logger.info "#{}Triggering #{event.inspect} event..." (hooks[event] || []).each{|block| if block.arity == 1 block.call(self) else engine.instance_eval(&block) end } end |
#triggered_events ⇒ Object
31 32 33 |
# File 'lib/bfire/pub_sub/publisher.rb', line 31 def triggered_events @triggered_events ||= [] end |