class AMQP::Hermes::Transmitter

Attributes

queue[R]

Public Class Methods

new(queue=nil, topic=nil, options={}) click to toggle source
# File lib/amqp-hermes/transmitter.rb, line 7
def initialize(queue=nil, topic=nil, options={})
  @queue = queue

  if topic.is_a?(Hash)
    options = topic.clone
    topic   = options[:topic]
  end

  options[:auto_delete] ||= true

  topic ||= "pub/sub"
  @exchange = channel.topic(topic, options)

  @transmitting = false
end

Public Instance Methods

close() click to toggle source
Calls superclass method AMQP::Hermes::Connectivity#close
# File lib/amqp-hermes/transmitter.rb, line 39
def close
  AMQP::Hermes.wait_for(self, :done_transmitting?)
  super
end
done_transmitting?() click to toggle source
# File lib/amqp-hermes/transmitter.rb, line 35
def done_transmitting?
  @transmitting == true ? false : true
end
transmit(payload, options={}) click to toggle source
# File lib/amqp-hermes/transmitter.rb, line 23
def transmit(payload, options={})
  @transmitting = true

  options.merge!(
    :routing_key => @queue
  ) unless options.has_key?(:routing_key)

  @exchange.publish( payload, options ) do
    @transmitting = false
  end
end