Class: Tochtli::RabbitClient

Inherits:
Object
  • Object
show all
Defined in:
lib/tochtli/rabbit_client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rabbit_connection = nil, logger = nil) ⇒ RabbitClient

Returns a new instance of RabbitClient.



6
7
8
9
10
11
12
13
# File 'lib/tochtli/rabbit_client.rb', line 6

def initialize(rabbit_connection=nil, logger=nil)
  if rabbit_connection
    @rabbit_connection = rabbit_connection
  else
    @rabbit_connection = Tochtli::RabbitConnection.open(nil, logger: logger)
  end
  @logger = logger || @rabbit_connection.logger
end

Instance Attribute Details

#rabbit_connectionObject (readonly)

Returns the value of attribute rabbit_connection.



4
5
6
# File 'lib/tochtli/rabbit_client.rb', line 4

def rabbit_connection
  @rabbit_connection
end

Instance Method Details

#publish(message, options = {}) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/tochtli/rabbit_client.rb', line 15

def publish(message, options={})
  raise InvalidMessageError.new(message.errors.join(", "), message) if message.invalid?

  @logger.debug "[#{Time.now} AMQP] Publishing message #{message.id} to #{message.routing_key}"

  reply_queue        = @rabbit_connection.reply_queue
  options[:reply_to] = reply_queue.name
  if (message_handler = options[:handler])
    reply_queue.register_message_handler message, message_handler, options[:timeout]
  end
  @rabbit_connection.publish message.routing_key, message, options
end

#reply_queue(*args) ⇒ Object



32
33
34
# File 'lib/tochtli/rabbit_client.rb', line 32

def reply_queue(*args)
  rabbit_connection.reply_queue(*args)
end

#wait_for_confirmsObject



28
29
30
# File 'lib/tochtli/rabbit_client.rb', line 28

def wait_for_confirms
  @rabbit_connection.channel.wait_for_confirms
end