class WisperKafka::Broadcaster

Public Class Methods

kafka_options(subscriber, args) click to toggle source

:reek: ManualDispatch

# File lib/wisper_kafka/broadcaster.rb, line 18
def self.kafka_options(subscriber, args)
  return subscriber.kafka_options(*args) if subscriber.respond_to?(:kafka_options)

  { topic: WisperKafka::Settings.topic }
end
register() click to toggle source
# File lib/wisper_kafka/broadcaster.rb, line 11
def self.register
  Wisper.configure do |config|
    config.broadcaster :kafka, new
  end
end

Public Instance Methods

broadcast(subscriber, _publisher, event, args) click to toggle source

:reek: LongParameterList :reek: UtilityFunction

# File lib/wisper_kafka/broadcaster.rb, line 26
def broadcast(subscriber, _publisher, event, args)
  event_data = { subscriber: subscriber, event: event, args: args }
  kafka_options = self.class.kafka_options(subscriber, args)

  DeliveryBoy.deliver(event_data.to_json, **kafka_options)
end