class Rabbitek::Publisher

Handles publishing message to RabbitMQ

Public Class Methods

new(exchange_name, exchange_type: 'direct', channel: nil) click to toggle source
# File lib/rabbitek/client/publisher.rb, line 7
def initialize(exchange_name, exchange_type: 'direct', channel: nil)
  @channel = channel || Rabbitek.create_channel
  @exchange_name = exchange_name
  @exchange_type = exchange_type
end

Public Instance Methods

close() click to toggle source
# File lib/rabbitek/client/publisher.rb, line 19
def close
  @channel.close
end
exchange() click to toggle source
# File lib/rabbitek/client/publisher.rb, line 23
def exchange
  @exchange ||= Utils::Common.exchange(@channel, @exchange_type, @exchange_name)
end
publish(payload, params = {}) click to toggle source
# File lib/rabbitek/client/publisher.rb, line 13
def publish(payload, params = {})
  Utils::HookWalker.new(Rabbitek.config.client_hooks).call!(payload, params) do |parsed_payload, parsed_params|
    exchange.publish(Utils::Oj.dump(parsed_payload), parsed_params)
  end
end