amqp-hermes

A wrapper around ruby-amqp to make pub/sub live more easy.

Synopsis

Sending a message

# plain and simple
tr = AMQP::Hermes::Transmitter.new("test.queue.testing")
tr.transmit "payload"

# or as json
tr.transmit { :foo => "bar", :quex => "stuff" }.to_json

# with AMQP options
tr.transmit "payload", :persistent => true

# on a different queue
tr.transmit "payload", :routing_key => "test.queue.real"

Receiving a message with the simple build in handler

re = AMQP::Hermes::Receiver.new("test.queue")  # will listen on routing_key
                                               # test.queue.* be default
while !re.messages.any?
  sleep 0.1
end

puts re.messages.first.payload

Receiving with a custom handler

class MyCustomHandler
  def receive(message)
    if message.headers.routing_key =~ /test/
      $stderr.puts "Just a test, nothing to worry about"
      $stderr.puts message.payload

    else
      # ... do something incredible

    end
  end
end

re = AMQP::Hermes::Receiver.new("test.queue",
  :handler => MyCustomHandler.new
)

while(true); 
  # the receiver is at the ball now
end

Contributing to amqp-hermes

Copyright © 2012 Wyngle, wyngle.com/. See LICENSE.txt for further details.