module MessageQueue::Producible

A module to mix in a producer class, for example:

class Producer

include MessageQueue::Producible

exchange :name => "time", :type => :topic
message :routing_key => "time.now", :mandatory => true

end

Producer.new.publish(Time.now.to_s)

Public Class Methods

included(base) click to toggle source
# File lib/message_queue/producible.rb, line 17
def self.included(base)
  base.extend(ClassMethods)
end
new() click to toggle source
# File lib/message_queue/producible.rb, line 39
def initialize
  @producer = MessageQueue.new_producer(:exchange => self.class.exchange_options, :message => self.class.message_options)
end

Public Instance Methods

publish(object, options = {}) click to toggle source
# File lib/message_queue/producible.rb, line 43
def publish(object, options = {})
  logger.info "Publishing #{object.inspect} with options #{options.inspect}"

  @producer.publish(object, options)
end