Module: MessageQueue::Producible
- Includes:
- Logging
- Defined in:
- lib/message_queue/producible.rb
Overview
A module to mix in a producer class, for example:
class Producer
include MessageQueue::Producible
exchange :name => "time", :type => :topic
:routing_key => "time.now", :mandatory => true
end
Producer.new.publish(Time.now.to_s)
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
Methods included from Logging
#logger, logger, logger=, setup_logger
Class Method Details
.included(base) ⇒ Object
17 18 19 |
# File 'lib/message_queue/producible.rb', line 17 def self.included(base) base.extend(ClassMethods) end |
Instance Method Details
#initialize ⇒ Object
39 40 41 |
# File 'lib/message_queue/producible.rb', line 39 def initialize @producer = MessageQueue.new_producer(:exchange => self.class., :message => self.class.) end |
#publish(object, options = {}) ⇒ Object
43 44 45 46 47 |
# File 'lib/message_queue/producible.rb', line 43 def publish(object, = {}) logger.info "Publishing #{object.inspect} with options #{.inspect}" @producer.publish(object, ) end |