Module: Datadog::Tracing::Contrib::Configurable::InstanceMethods

Defined in:
lib/datadog/tracing/contrib/configurable.rb

Overview

Configurable instance behavior for integrations

Instance Method Summary collapse

Instance Method Details

#configuration(matcher = :default) ⇒ Object

Get matching configuration by matcher. If no match, returns the default configuration instance.



21
22
23
24
25
# File 'lib/datadog/tracing/contrib/configurable.rb', line 21

def configuration(matcher = :default)
  return default_configuration if matcher == :default

  resolver.get(matcher) || default_configuration
end

#configurationsObject

Returns all registered matchers and their respective configurations.



36
37
38
# File 'lib/datadog/tracing/contrib/configurable.rb', line 36

def configurations
  resolver.configurations.merge(default: default_configuration)
end

#configure(matcher = :default, options = {}, &block) ⇒ Object

Create or update configuration associated with ‘matcher` with the provided `options` and `&block`.



42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/datadog/tracing/contrib/configurable.rb', line 42

def configure(matcher = :default, options = {}, &block)
  config = if matcher == :default
             default_configuration
           else
             # Get or add the configuration
             resolver.get(matcher) || resolver.add(matcher, new_configuration)
           end

  # Apply the settings
  config.configure(options, &block)
  config
end

#default_configurationDatadog::Tracing::Contrib::Configuration::Settings

Returns the integration-specific configuration object.

If one does not exist, invoke #new_configuration a memoize its value.

Returns:



67
68
69
# File 'lib/datadog/tracing/contrib/configurable.rb', line 67

def default_configuration
  @default_configuration ||= new_configuration
end

#reset_configuration!Object

Resets all configuration options



56
57
58
59
# File 'lib/datadog/tracing/contrib/configurable.rb', line 56

def reset_configuration!
  @resolver = nil
  @default_configuration = nil
end

#resolve(value) ⇒ Object

Resolves the matching configuration for integration-specific value. If no match, returns the default configuration instance.



29
30
31
32
33
# File 'lib/datadog/tracing/contrib/configurable.rb', line 29

def resolve(value)
  return default_configuration if value == :default

  resolver.resolve(value) || default_configuration
end