class Queight::Queue

Attributes

name[R]
routing_patterns[R]

Public Class Methods

new(name, options = {}) click to toggle source
# File lib/queight/queue.rb, line 3
def initialize(name, options = {})
  @name = name
  @routing_patterns = Array(options.delete(:routing))
  @queue_options = options
end

Public Instance Methods

declare(channel) click to toggle source
# File lib/queight/queue.rb, line 11
def declare(channel)
  queue(channel)
end
delete(channel) click to toggle source
# File lib/queight/queue.rb, line 22
def delete(channel)
  channel.queue(@name).delete
end
message_count(channel) click to toggle source
# File lib/queight/queue.rb, line 30
def message_count(channel)
  queue(channel).message_count
end
purge(channel) click to toggle source
# File lib/queight/queue.rb, line 34
def purge(channel)
  queue(channel).purge
end
queue(channel) click to toggle source
# File lib/queight/queue.rb, line 26
def queue(channel)
  channel.queue(@name, queue_options)
end
subscribe(channel, options = {}) { |channel, *args| ... } click to toggle source
# File lib/queight/queue.rb, line 15
def subscribe(channel, options = {})
  queue = queue(channel)
  queue.subscribe(subscribe_options(options)) do |*args|
    yield(channel, *args)
  end
end

Private Instance Methods

queue_options() click to toggle source
# File lib/queight/queue.rb, line 47
def queue_options
  {
    :auto_delete => false,
    :durable => true,
    :exclusive => false,
  }.merge(@queue_options)
end
subscribe_options(options) click to toggle source
# File lib/queight/queue.rb, line 40
def subscribe_options(options)
  {
    :block => true,
    :manual_ack => true,
  }.merge(options)
end