Module: Datadog::Core::Configuration::Base::InstanceMethods

Defined in:
lib/datadog/core/configuration/base.rb

Overview

Instance methods for configuration

Instance Method Summary collapse

Instance Method Details

#configure(opts = {}) {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/datadog/core/configuration/base.rb', line 58

def configure(opts = {})
  # Sort the options in preference of dependency order first
  ordering = self.class.options.dependency_order
  sorted_opts = opts.sort_by do |name, _value|
    ordering.index(name) || (ordering.length + 1)
  end.to_h

  # Apply options in sort order
  sorted_opts.each do |name, value|
    if respond_to?("#{name}=")
      send("#{name}=", value)
    elsif option_defined?(name)
      set_option(name, value)
    end
  end

  # Apply any additional settings from block
  yield(self) if block_given?
end

#dig(*options) ⇒ Object

Retrieves a nested option from a list of symbols



83
84
85
86
87
88
89
# File 'lib/datadog/core/configuration/base.rb', line 83

def dig(*options)
  raise ArgumentError, 'expected at least one option' if options.empty?

  options.inject(self) do |receiver, option|
    receiver.send(option)
  end
end

#initialize(options = {}) ⇒ Object



54
55
56
# File 'lib/datadog/core/configuration/base.rb', line 54

def initialize(options = {})
  configure(options) unless options.empty?
end

#reset!Object



91
92
93
# File 'lib/datadog/core/configuration/base.rb', line 91

def reset!
  reset_options!
end

#to_hObject



78
79
80
# File 'lib/datadog/core/configuration/base.rb', line 78

def to_h
  options_hash
end