Sha256: e0f00e017b32d0ee05a447705f93c49dfe2a42ecf19c847cffbde5032d2c9d92

Contents?: true

Size: 775 Bytes

Versions: 1

Compression:

Stored size: 775 Bytes

Contents

module Umbra
  class Config
    attr_accessor :publisher, :request_selector, :encoder, :error_handler, :redis_options, :logger

    def self.default(&block)
      new(
        publisher: Publisher.new,
        request_selector: RequestSelector,
        encoder: Encoder,
        error_handler: SuppressErrorHandler,
        redis_options: {},
        logger: Logger.new($stdout),
        &block
      )
    end

    private

    def initialize(opts)
      @publisher = opts.fetch(:publisher)
      @request_selector = opts.fetch(:request_selector)
      @encoder = opts.fetch(:encoder)
      @error_handler = opts.fetch(:error_handler)
      @redis_options = opts.fetch(:redis_options)
      @logger = opts.fetch(:logger)

      yield(self) if block_given?
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
umbra-rb-0.3.0 lib/umbra/config.rb