Class: YAKC::MessageBroadcaster
- Inherits:
-
Object
- Object
- YAKC::MessageBroadcaster
- Defined in:
- lib/yakc/message_broadcaster.rb
Instance Attribute Summary collapse
-
#instrumenter ⇒ Object
Returns the value of attribute instrumenter.
-
#message_class ⇒ Object
Returns the value of attribute message_class.
-
#publisher ⇒ Object
Returns the value of attribute publisher.
Instance Method Summary collapse
- #handle(topic, message) ⇒ Object
-
#initialize(publisher: Yeller, instrumenter: FallthroughInstrumenter, message_parser:) ⇒ MessageBroadcaster
constructor
A new instance of MessageBroadcaster.
Constructor Details
#initialize(publisher: Yeller, instrumenter: FallthroughInstrumenter, message_parser:) ⇒ MessageBroadcaster
Returns a new instance of MessageBroadcaster.
5 6 7 8 9 10 |
# File 'lib/yakc/message_broadcaster.rb', line 5 def initialize( publisher: Yeller, instrumenter: FallthroughInstrumenter, message_parser: ) @publisher = publisher @message_class = @instrumenter = instrumenter.new raise "MessageBroadcaster must have a valid message class" unless @message_class end |
Instance Attribute Details
#instrumenter ⇒ Object
Returns the value of attribute instrumenter.
3 4 5 |
# File 'lib/yakc/message_broadcaster.rb', line 3 def instrumenter @instrumenter end |
#message_class ⇒ Object
Returns the value of attribute message_class.
3 4 5 |
# File 'lib/yakc/message_broadcaster.rb', line 3 def @message_class end |
#publisher ⇒ Object
Returns the value of attribute publisher.
3 4 5 |
# File 'lib/yakc/message_broadcaster.rb', line 3 def publisher @publisher end |
Instance Method Details
#handle(topic, message) ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/yakc/message_broadcaster.rb', line 12 def handle( topic, ) msg = @message_class.new( ) @instrumenter.instrument( msg ) do if msg.broadcastable? # broadcast the specific topic event @publisher.broadcast msg.payload, broadcast_key( topic, msg.event ) end end end |