Class: Message::PubSub

Inherits:
Object
  • Object
show all
Defined in:
lib/message/pub_sub.rb,
lib/message/version.rb

Constant Summary collapse

VERSION =
"1.0.0"

Class Method Summary collapse

Class Method Details

.has_subscribers?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/message/pub_sub.rb', line 30

def has_subscribers?
  subscribers.size > 0
end

.publish(event, message) ⇒ Object



20
21
22
23
24
# File 'lib/message/pub_sub.rb', line 20

def publish(event, message)
  queue[event].each { |subscriber| subscriber.send(event, message) }
  rescue Exception => e
    raise Message::PubSubError.new({:error => e})
end

.subscribe(subscriber, event) ⇒ Object



16
17
18
# File 'lib/message/pub_sub.rb', line 16

def subscribe(subscriber, event)
  queue[event] = Array.wrap(queue[event]).push(subscriber)
end

.subscribersObject



26
27
28
# File 'lib/message/pub_sub.rb', line 26

def subscribers
  queue.keys
end