Module: Bfire::PubSub::Publisher

Included in:
Engine, Group, Rule
Defined in:
lib/bfire/pub_sub/publisher.rb

Class Method Summary collapse

Instance Method Summary collapse

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

Returns:

  • (Boolean)


23
24
25
# File 'lib/bfire/pub_sub/publisher.rb', line 23

def error?
  triggered_events.include?(:error)
end

#hooksObject



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 "#{banner}Triggering #{event.inspect} event..."
  (hooks[event] || []).each{|block| 
    if block.arity == 1
      block.call(self)
    else
      engine.instance_eval(&block) 
    end
  }
end

#triggered_eventsObject



31
32
33
# File 'lib/bfire/pub_sub/publisher.rb', line 31

def triggered_events
  @triggered_events ||= []
end