Sha256: 82d5b0a07f3fc33ad0fb6576c2302971002ece602d96a15890e550ba17f3450e
Contents?: true
Size: 1.38 KB
Versions: 17
Compression:
Stored size: 1.38 KB
Contents
require 'ddtrace/contrib/configuration/resolver' require 'ddtrace/contrib/configuration/settings' module Datadog module Contrib # Defines configurable behavior for integrations module Configurable def self.included(base) base.send(:include, InstanceMethods) end # Configurable instance behavior for integrations module InstanceMethods def default_configuration Configuration::Settings.new end def reset_configuration! @configurations = nil @resolver = nil end def configuration(name = :default) name = :default if name.nil? name = resolver.resolve(name) return nil unless configurations.key?(name) configurations[name] end def configurations @configurations ||= Hash.new { default_configuration }.tap do |configs| configs[:default] = default_configuration end end def configure(name, options = {}, &block) name = resolver.resolve(name || :default) configurations[name].tap do |settings| settings.configure(options, &block) configurations[name] = settings end end protected attr_writer :resolver def resolver @resolver ||= Configuration::Resolver.new end end end end end
Version data entries
17 entries across 17 versions & 1 rubygems