Sha256: 67d4d5fe5a468abd2b33349f0a31e4e40b4fb98664e1610b4fb9de4e1eceb363

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

# typed: false

module Datadog
  module Core
    # Namespace for handling application environment
    module Environment
      # Defines helper methods for environment
      # @public_api
      module VariableHelpers
        extend self

        def env_to_bool(var, default = nil)
          var = decode_array(var)
          var && ENV.key?(var) ? ENV[var].to_s.strip.downcase == 'true' : default
        end

        def env_to_int(var, default = nil)
          var = decode_array(var)
          var && ENV.key?(var) ? ENV[var].to_i : default
        end

        def env_to_float(var, default = nil)
          var = decode_array(var)
          var && ENV.key?(var) ? ENV[var].to_f : default
        end

        def env_to_list(var, default = [])
          var = decode_array(var)
          if var && ENV.key?(var)
            ENV[var].split(',').map(&:strip)
          else
            default
          end
        end

        private

        def decode_array(var)
          var.is_a?(Array) ? var.find { |env_var| ENV.key?(env_var) } : var
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ddtrace-1.0.0 lib/datadog/core/environment/variable_helpers.rb
ddtrace-1.0.0.beta2 lib/datadog/core/environment/variable_helpers.rb