Class: Megaphone::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/megaphone/client.rb,
lib/megaphone/client/event.rb,
lib/megaphone/client/errors.rb,
lib/megaphone/client/logger.rb,
lib/megaphone/client/version.rb,
lib/megaphone/client/file_logger.rb,
lib/megaphone/client/fluent_logger.rb

Defined Under Namespace

Classes: Event, FileLogger, FluentLogger, Logger, MegaphoneUnavailableError

Constant Summary collapse

VERSION =
"1.0.0"

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Client

Returns a new instance of Client.



11
12
13
14
15
16
# File 'lib/megaphone/client.rb', line 11

def initialize(config)
  @origin = config.fetch(:origin)
  host = config.fetch(:host, ENV['MEGAPHONE_FLUENT_HOST'])
  port = config.fetch(:port, ENV['MEGAPHONE_FLUENT_PORT'])
  @logger = Megaphone::Client::Logger.create(host, port)
end

Instance Method Details

#publish!(topic, subtopic, schema, partition_key, payload) ⇒ Object



18
19
20
21
22
23
# File 'lib/megaphone/client.rb', line 18

def publish!(topic, subtopic, schema, partition_key, payload)
  event = Event.new(topic, subtopic, origin, schema, partition_key, payload)
  unless logger.post(topic, event.to_hash)
    raise MegaphoneUnavailableError.new(logger.last_error.message, event)
  end
end