Sha256: b8a6a46bbbff4e47b7364ad9fc04c99e0b77eb762a46a1d58e2ddbf8de3a3331

Contents?: true

Size: 1.37 KB

Versions: 13

Compression:

Stored size: 1.37 KB

Contents

module Vx
  module Consumer
    Params = Struct.new(:consumer_class) do

      attr_accessor :exchange_name, :exchange_options
      attr_accessor :queue_name, :queue_options
      attr_accessor :routing_key, :headers
      attr_accessor :content_type
      attr_accessor :ack
      attr_accessor :exchange_type
      attr_accessor :model

      def exchange_name
        @exchange_name || default_exchange_name
      end

      def queue_name
        @queue_name || ""
      end

      def ack
        !!@ack
      end

      def content_type
        @content_type || config.content_type
      end

      def exchange_type
        @exchange_type || config.default_exchange_type
      end

      def exchange_options
        (@exchange_options || config.default_exchange_options).merge(type: exchange_type)
      end

      def queue_options
        @queue_options || config.default_queue_options
      end

      def publish_options
        config.default_publish_options
      end

      def bind_options
        opts = { }
        opts.merge!(routing_key: routing_key) if routing_key
        opts.merge!(headers: headers) if headers
        opts
      end

      def consumer_name
        consumer_class.to_s
      end

      private

        def config
          Consumer.configuration
        end

        def default_exchange_name
          "amq.#{exchange_type}"
        end

    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
vx-consumer-0.2.0 lib/vx/consumer/params.rb
vx-consumer-0.2.0.pre0 lib/vx/consumer/params.rb
vx-consumer-0.1.8 lib/vx/consumer/params.rb
vx-consumer-0.1.7 lib/vx/consumer/params.rb
vx-consumer-0.1.6 lib/vx/consumer/params.rb
vx-consumer-0.1.5 lib/vx/consumer/params.rb
vx-consumer-0.1.4 lib/vx/consumer/params.rb
vx-consumer-0.1.3 lib/vx/consumer/params.rb
vx-consumer-0.1.2 lib/vx/consumer/params.rb
vx-consumer-0.1.1 lib/vx/consumer/params.rb
vx-consumer-0.1.0 lib/vx/consumer/params.rb
vx-consumer-0.0.2 lib/vx/consumer/params.rb
vx-consumer-0.0.1 lib/vx/consumer/params.rb