Sha256: f29dd52bc19a1b51453f626ff8e200dd6fc8f0d65e28b28b2a0991f008ee84d1

Contents?: true

Size: 1016 Bytes

Versions: 7

Compression:

Stored size: 1016 Bytes

Contents

require 'ddtrace/environment'
require 'ddtrace/configuration/options'

module Datadog
  module Contrib
    module Configuration
      # Common settings for all integrations
      class Settings
        extend Datadog::Environment::Helpers
        include Datadog::Configuration::Options

        option :service_name
        option :tracer, default: Datadog.tracer
        option :analytics_enabled, default: false
        option :analytics_sample_rate, default: 1.0

        def initialize(options = {})
          configure(options)
        end

        def configure(options = {})
          self.class.options.dependency_order.each do |name|
            self[name] = options.fetch(name, self[name])
          end

          yield(self) if block_given?
        end

        def [](name)
          respond_to?(name) ? send(name) : get_option(name)
        end

        def []=(name, value)
          respond_to?("#{name}=") ? send("#{name}=", value) : set_option(name, value)
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
ddtrace-0.23.2 lib/ddtrace/contrib/configuration/settings.rb
ddtrace-0.23.1 lib/ddtrace/contrib/configuration/settings.rb
ddtrace-0.23.0 lib/ddtrace/contrib/configuration/settings.rb
ddtrace-0.22.0 lib/ddtrace/contrib/configuration/settings.rb
ddtrace-0.21.2 lib/ddtrace/contrib/configuration/settings.rb
ddtrace-0.21.1 lib/ddtrace/contrib/configuration/settings.rb
ddtrace-0.21.0 lib/ddtrace/contrib/configuration/settings.rb