Class: Yeller::Broadcaster
- Inherits:
-
Object
- Object
- Yeller::Broadcaster
- Defined in:
- lib/yeller/broadcaster.rb
Instance Method Summary collapse
- #broadcast(message, *keys) ⇒ Object
-
#initialize ⇒ Broadcaster
constructor
A new instance of Broadcaster.
- #subscribe(subscriber_class, options) ⇒ Object
Constructor Details
#initialize ⇒ Broadcaster
Returns a new instance of Broadcaster.
4 5 6 |
# File 'lib/yeller/broadcaster.rb', line 4 def initialize( ) @subscribers = SubscriberCollection.new end |
Instance Method Details
#broadcast(message, *keys) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/yeller/broadcaster.rb', line 8 def broadcast( , *keys ) keys.each do |key| normalized_key = Key.normalize(key) @subscribers.find( normalized_key ).each do |subscriber| subscriber.notify( ) end end end |
#subscribe(subscriber_class, options) ⇒ Object
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/yeller/broadcaster.rb', line 17 def subscribe( subscriber_class, ) keys = Array([:to]) method = [:with] raise KeyError, "expected :with and :to to be present in subscriber definition" unless method && keys keys.each do |key| normalized_key = Key.normalize(key) subscriber = Subscriber.new( subscriber_class, method, normalized_key ) @subscribers.add( subscriber ) end end |