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

Defined in:
lib/ddtrace/contrib/configurable.rb

Overview

Configurable instance behavior for integrations

Instance Method Summary collapse

Instance Method Details

#configuration(key = :default) ⇒ Object

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



25
26
27
# File 'lib/ddtrace/contrib/configurable.rb', line 25

def configuration(key = :default)
  configurations[configuration_key(key)]
end

#configuration_for?(key) ⇒ Boolean

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

Returns:

  • (Boolean)


31
32
33
34
# File 'lib/ddtrace/contrib/configurable.rb', line 31

def configuration_for?(key)
  key = resolver.resolve(key) unless key == :default
  configurations.key?(key)
end

#configurationsObject



36
37
38
39
40
# File 'lib/ddtrace/contrib/configurable.rb', line 36

def configurations
  @configurations ||= {
    default: default_configuration
  }
end

#configure(key, options = {}, &block) ⇒ Object

Create or update configuration with provided settings.



43
44
45
46
47
48
49
50
51
52
# 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_configurationObject



14
15
16
# File 'lib/ddtrace/contrib/configurable.rb', line 14

def default_configuration
  Configuration::Settings.new
end

#reset_configuration!Object



18
19
20
21
# File 'lib/ddtrace/contrib/configurable.rb', line 18

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