module Datadog::Contrib::Configurable::InstanceMethods

Configurable instance behavior for integrations

Public Instance Methods

configuration(key = :default) click to toggle source

Get matching configuration for key. If no match, returns default configuration.

# File lib/ddtrace/contrib/configurable.rb, line 25
def configuration(key = :default)
  configurations[configuration_key(key)]
end
configuration_for?(key) click to toggle source

If the key has matching configuration explicitly defined for it, then return true. Otherwise return false.

# File lib/ddtrace/contrib/configurable.rb, line 31
def configuration_for?(key)
  key = resolver.resolve(key) unless key == :default
  configurations.key?(key)
end
configurations() click to toggle source
# File lib/ddtrace/contrib/configurable.rb, line 36
def configurations
  @configurations ||= {
    default: default_configuration
  }
end
configure(key, options = {}, &block) click to toggle source

Create or update configuration with provided settings.

# File lib/ddtrace/contrib/configurable.rb, line 43
def configure(key, options = {}, &block)
  key ||= :default

  # Get or add the configuration
  config = configuration_for?(key) ? configuration(key) : add_configuration(key)

  # Apply the settings
  config.configure(options, &block)
  config
end
default_configuration() click to toggle source
# File lib/ddtrace/contrib/configurable.rb, line 14
def default_configuration
  Configuration::Settings.new
end
reset_configuration!() click to toggle source
# File lib/ddtrace/contrib/configurable.rb, line 18
def reset_configuration!
  @configurations = nil
  @resolver = nil
end

Protected Instance Methods

add_configuration(key) click to toggle source
# File lib/ddtrace/contrib/configurable.rb, line 60
def add_configuration(key)
  resolver.add(key)
  config_key = resolver.resolve(key)
  configurations[config_key] = default_configuration
end
configuration_key(key) click to toggle source
# File lib/ddtrace/contrib/configurable.rb, line 66
def configuration_key(key)
  return :default if key.nil? || key == :default

  key = resolver.resolve(key)
  key = :default unless configurations.key?(key)
  key
end
resolver() click to toggle source
# File lib/ddtrace/contrib/configurable.rb, line 56
def resolver
  @resolver ||= Configuration::Resolver.new
end