class Pebbles::River::Message

Attributes

delivery_info[R]
payload[R]
queue[R]

Public Class Methods

deserialize_payload(content) click to toggle source
# File lib/pebbles/river/message.rb, line 21
def self.deserialize_payload(content)
  if content
    begin
      return JSON.parse(content)
    rescue => e
      raise InvalidPayloadError.new(e.message, content)
    end
  end
end
new(content, delivery_info, queue = nil) click to toggle source
# File lib/pebbles/river/message.rb, line 31
def initialize(content, delivery_info, queue = nil)
  @queue = queue
  @delivery_info = delivery_info
  @payload = self.class.deserialize_payload(content)
  @replied = false
end

Public Instance Methods

==(other) click to toggle source
# File lib/pebbles/river/message.rb, line 38
def ==(other)
  other &&
    other.is_a?(Message) &&
    other.payload == @payload
end
ack() click to toggle source
# File lib/pebbles/river/message.rb, line 48
def ack
  if !@replied && (tag = delivery_tag)
    @queue.channel.ack(tag)
    @replied = true
  end
end
delivery_tag() click to toggle source
# File lib/pebbles/river/message.rb, line 44
def delivery_tag
  @delivery_info.delivery_tag if @delivery_info
end
nack() click to toggle source
# File lib/pebbles/river/message.rb, line 55
def nack
  if !@replied && (tag = delivery_tag)
    @queue.channel.nack(tag, false, true)
    @replied = true
  end
end