class YAKC::MessageBroadcaster
Attributes
instrumenter[RW]
message_class[RW]
Public Class Methods
new( instrumenter: FallthroughInstrumenter, message_parser: )
click to toggle source
# File lib/yakc/message_broadcaster.rb, line 5 def initialize( instrumenter: FallthroughInstrumenter, message_parser: ) @message_class = message_parser @instrumenter = instrumenter.new raise "MessageBroadcaster must have a valid message class" unless @message_class end
Public Instance Methods
handle( topic, message )
click to toggle source
# File lib/yakc/message_broadcaster.rb, line 11 def handle( topic, message ) msg = @message_class.new( message ) @instrumenter.instrument( msg ) do if msg.broadcastable? # broadcast the specific topic event ActiveSupport::Notifications.instrument broadcast_key( topic, msg.event ), message: msg.payload end end end
Private Instance Methods
broadcast_key( topic, event )
click to toggle source
# File lib/yakc/message_broadcaster.rb, line 24 def broadcast_key( topic, event ) "#{topic}::#{event}" end