module Hat::Publisher
Public Class Methods
channel()
click to toggle source
# File lib/hat/publisher.rb, line 21 def self.channel unless @connection @connection = Bunny.new @connection.start end @channel ||= @connection.create_channel end
direct(queue, message, options={})
click to toggle source
# File lib/hat/publisher.rb, line 37 def self.direct(queue, message, options={}) publish(:direct, (options.delete(:exchange) || config.publisher.default_direct_exchange), message, queue, options) end
publish(type, exchange, message, queue=nil, options={}, exchange_options={})
click to toggle source
# File lib/hat/publisher.rb, line 29 def self.publish(type, exchange, message, queue=nil, options={}, exchange_options={}) options.merge(routing_key: queue) if queue config.publisher.middlewares.each { |m| message = m.call(message) } channel.send(type, exchange, exchange_options.merge(config.exchange)). publish(message, options.merge(config.publisher.options)) true end
topic(queue, message, options={})
click to toggle source
# File lib/hat/publisher.rb, line 41 def self.topic(queue, message, options={}) publish(:topic, (options.delete(:exchange) || config.publisher.default_topic_exchange), message, queue, options) end