Sha256: b693c8970a6eb4ed71564432518037e7b613426cd0298757543ef253bd6a815d

Contents?: true

Size: 736 Bytes

Versions: 1

Compression:

Stored size: 736 Bytes

Contents

module Materialist
  class << self
    def configuration
      @configuration ||= Configuration.new
    end

    def reset_configuration!
      @configuration = Configuration.new
    end

    def configure
      yield(self.configuration)
    end
  end

  class Configuration
    attr_accessor :topics, :sidekiq_options, :api_client, :metrics_client, :notice_error

    def initialize
      @topics = []
      @sidekiq_options = {}
      @metrics_client = NullMetricsClient
      @notice_error = nil
    end

    def api_client
      @api_client || (raise StandardError.new('missing HTTP client'))
    end

    class NullMetricsClient
      def self.increment(_, tags:); end
      def self.histogram(_, _v, tags:); end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
materialist-3.8.3 lib/configuration.rb