module RabidMQ::Listener
Attributes
amqp_exchange[R]
amqp_queue[R]
routing_key[R]
Public Class Methods
amqp(queue, exchange, exclusive: false, routing_key: '
click to toggle source
# File lib/rabid_mq/listener.rb, line 23 def amqp(queue, exchange, exclusive: false, routing_key: '#', include_environment_name: true) self.queue_name queue, exclusive: exclusive, include_environment_name: include_environment_name self.exchange(exchange, include_environment_name: include_environment_name) @routing_key = routing_key amqp_queue.bind(amqp_exchange, routing_key: routing_key) end
amqp_connection()
click to toggle source
# File lib/rabid_mq/listener.rb, line 61 def amqp_connection amqp_exchange.channel.connection end
bind(exchange=amqp_exchange, routing_key: @routing_key, **options)
click to toggle source
# File lib/rabid_mq/listener.rb, line 52 def bind(exchange=amqp_exchange, routing_key: @routing_key, **options) amqp_queue.bind(exchange, routing_key: routing_key, **options) end
exchange(topic, include_environment_name: true, **options)
click to toggle source
Use this as a macro in including classes like class MyClass
include RabidMQ::Listener exchange 'exchange.name'
end
# File lib/rabid_mq/listener.rb, line 47 def exchange(topic, include_environment_name: true, **options) topic_name = include_environment_name ? name_with_env(topic) : topic @amqp_exchange = RabidMQ.topic_exchange topic_name, **options end
queue_name(name, include_environment_name: true, **options)
click to toggle source
Use this as a macro in including classes like class MyClass
include RabidMQ::Listener queue_name 'some.queue_name', exclusive: true
end
# File lib/rabid_mq/listener.rb, line 36 def queue_name(name, include_environment_name: true, **options) resolved_name = include_environment_name ? name_with_env(name) : name @amqp_queue = RabidMQ.channel.queue(resolved_name, **options) end