Module: Datadog::Core::Telemetry::ConfigurationValue

Defined in:
lib/datadog/core/telemetry/configuration_value.rb

Class Method Summary collapse

Class Method Details

.convert(value) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/datadog/core/telemetry/configuration_value.rb', line 9

def convert(value)
  case value
  when Integer, String, true, false, nil
    value
  when Float
    value.finite? ? value : value.to_s
  when Hash
    value.map { |key, entry_value| "#{key}:#{entry_value}" }.join(",")
  when Array
    value.join(",")
  when Module
    value.name.to_s
  else
    implements_to_s = begin
      value.method(:to_s).owner != Kernel
    rescue NameError
      false
    end

    if implements_to_s
      value.to_s
    else
      value.class.to_s
    end
  end
end