Sha256: 5c63fef9e47fa07119b0fb0e1860103a80adb5c0b0a7c60d0bdeb11e5c640a67

Contents?: true

Size: 1.42 KB

Versions: 2

Compression:

Stored size: 1.42 KB

Contents

require "singleton"
require "logger"

module Messaging

  # Global configuration for producer and consumer mixins.
  class Configuration
    include Singleton

    # @yieldparam [Messaging::Configuration] config
    # @api public
    def self.setup(&block)
      yield(Configuration.instance)
    end

    # @!attribute [r] publish_to
    #   @return [String]
    attr_accessor :publish_to

    # @!attribute [r] consume_from
    #   @return [Array<String>]
    attr_accessor :consume_from

    # @!attribute [r] prefetch
    #   @return [Integer]
    attr_accessor :prefetch

    # @!attribute [r] exchange_options
    #   @return [Hash]
    attr_accessor :exchange_options

    # @!attribute [r] queue_options
    #   @return [Hash]
    attr_accessor :queue_options

    # @!attribute [r] reconnect_delay
    #   @return [Integer]
    attr_accessor :reconnect_delay

    # @!attribute [r] heartbeat
    #   @return [Integer]
    attr_accessor :heartbeat

    # @!attribute [r] logger
    #   @return [#info, #debug, #error]
    attr_accessor :logger

    # @api private
    def initialize
      @publish_to       = "amqp://guest:guest@localhost:5672"
      @consume_from     = [publish_to]
      @prefetch         = 1
      @exchange_options = { :auto_delete => false, :durable => true }
      @queue_options    = exchange_options
      @reconnect_delay  = 5
      @heartbeat        = 5
      @logger           = Logger.new(STDOUT)
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
amqp-subscribe-many-0.2.2 lib/messaging/configuration.rb
amqp-subscribe-many-0.2.1 lib/messaging/configuration.rb