module Watership::Subscriber

Public Instance Methods

perform(payload) click to toggle source
# File lib/watership/subscriber.rb, line 3
def perform(payload)
  raise NotImplementedError
end
subscribe(name, options = {}) click to toggle source
# File lib/watership/subscriber.rb, line 7
def subscribe(name, options = {})
  options = { block: true, ack: true }.merge(options)

  queue(name).subscribe(options) do |delivery_info, properties, payload|
    perform(JSON.parse(payload))
    queue_channel.acknowledge(delivery_info.delivery_tag, false) if options[:ack]
  end
end

Protected Instance Methods

queue(name) click to toggle source
# File lib/watership/subscriber.rb, line 18
def queue(name)
  Watership.connect_with_queue(name)
end
queue_channel() click to toggle source
# File lib/watership/subscriber.rb, line 22
def queue_channel
  Watership.channel
end