Sha256: 91f31cebe1c069b3252f0dd7b4493fffec6cbeb0c67c535e9cada8252c8495e6

Contents?: true

Size: 855 Bytes

Versions: 79

Compression:

Stored size: 855 Bytes

Contents

# frozen_string_literal: true

module Msgr
  class Consumer
    include Logging

    attr_reader :message
    delegate :payload, to: :@message
    delegate :action, to: :'@message.route'
    delegate :consumer, to: :'@message.consumer'

    class << self
      def auto_ack?
        @auto_ack || @auto_ack.nil?
      end

      def auto_ack=(val)
        @auto_ack = val
      end
    end

    def dispatch(message)
      @message = message

      action = message.route.action.to_sym

      unless respond_to?(action)
        raise Msgr::NoAction.new \
          "No action `#{action}` for `#{self.class.name}`."
      end

      log(:debug) { "Invoke action #{action.inspect}." }

      send action

      log(:debug) { "Action #{action.inspect} done." }
    end

    def publish(data, opts = {})
      Msgr.client.publish(data, opts)
    end
  end
end

Version data entries

79 entries across 79 versions & 1 rubygems

Version Path
msgr-1.2.0 lib/msgr/consumer.rb
msgr-1.1.0.1.b306 lib/msgr/consumer.rb
msgr-1.1.0.1.b305 lib/msgr/consumer.rb
msgr-1.1.0.1.b302 lib/msgr/consumer.rb
msgr-1.1.0.1.b301 lib/msgr/consumer.rb
msgr-1.1.0.1.b300 lib/msgr/consumer.rb
msgr-1.1.0.1.b297 lib/msgr/consumer.rb
msgr-1.1.0.1.b296 lib/msgr/consumer.rb
msgr-1.1.0.1.b295 lib/msgr/consumer.rb
msgr-1.1.0.1.b292 lib/msgr/consumer.rb
msgr-1.1.0.1.b291 lib/msgr/consumer.rb
msgr-1.1.0.1.b288 lib/msgr/consumer.rb
msgr-1.1.0.1.b285 lib/msgr/consumer.rb
msgr-1.1.0.1.b263 lib/msgr/consumer.rb
msgr-1.1.0.1.b249 lib/msgr/consumer.rb
msgr-1.1.0.1.b248 lib/msgr/consumer.rb
msgr-1.1.0.1.b244 lib/msgr/consumer.rb
msgr-1.1.0.1.b241 lib/msgr/consumer.rb
msgr-1.1.0.1.b240 lib/msgr/consumer.rb
msgr-1.1.0.1.b239 lib/msgr/consumer.rb