Sha256: 7e724270100d75bbaf9eb2a23cad32130429e0a931d23f595a44701162cc6ba3

Contents?: true

Size: 1.28 KB

Versions: 66

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

module Msgr
  class Message
    attr_reader :delivery_info, :metadata, :payload, :route

    def initialize(channel, delivery_info, metadata, payload, route)
      @channel       = channel
      @delivery_info = delivery_info
      @metadata      = metadata
      @payload       = payload
      @route         = route

      # rubocop:disable Style/GuardClause
      if content_type == 'application/json'
        @payload = MultiJson.load(payload)
        @payload.symbolize_keys! if @payload.respond_to? :symbolize_keys!
      end
    end

    def content_type
      @metadata.content_type
    end

    # Check if message is already acknowledged.
    #
    # @return [Boolean] True if message is acknowledged, false otherwise.
    # @api public
    #
    def acked?
      @acked ? true : false
    end

    # Send message acknowledge to broker unless message is
    # already acknowledged.
    #
    # @api public
    #
    def ack
      return if acked?

      @acked = true
      @channel.ack delivery_info.delivery_tag
    end

    # Send negative message acknowledge to broker unless
    # message is  already acknowledged.
    #
    # @api public
    #
    def nack
      return if acked?

      @acked = true
      @channel.nack delivery_info.delivery_tag
    end
  end
end

Version data entries

66 entries across 66 versions & 1 rubygems

Version Path
msgr-1.1.0.1.b263 lib/msgr/message.rb
msgr-1.1.0.1.b249 lib/msgr/message.rb
msgr-1.1.0.1.b248 lib/msgr/message.rb
msgr-1.1.0.1.b244 lib/msgr/message.rb
msgr-1.1.0.1.b241 lib/msgr/message.rb
msgr-1.1.0.1.b240 lib/msgr/message.rb
msgr-1.1.0.1.b239 lib/msgr/message.rb
msgr-1.1.0.1.b238 lib/msgr/message.rb
msgr-1.1.0.1.b237 lib/msgr/message.rb
msgr-1.1.0.1.b236 lib/msgr/message.rb
msgr-1.1.0.1.b235 lib/msgr/message.rb
msgr-1.1.0.1.b234 lib/msgr/message.rb
msgr-1.1.0.1.b233 lib/msgr/message.rb
msgr-1.1.0.1.b232 lib/msgr/message.rb
msgr-1.1.0.1.b231 lib/msgr/message.rb
msgr-1.1.0.1.b230 lib/msgr/message.rb
msgr-1.1.0.1.b229 lib/msgr/message.rb
msgr-1.1.0.1.b228 lib/msgr/message.rb
msgr-1.1.0.1.b227 lib/msgr/message.rb
msgr-1.1.0.1.b226 lib/msgr/message.rb