Module: SecureKeys::Services::Environment

Defined in:
lib/services/environment.rb

Class Method Summary collapse

Class Method Details

.decimal(key:, default: nil) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/services/environment.rb', line 29

def decimal(key:, default: nil)
  value = fetch(key:, default:)
  Float(value)
rescue ArgumentError, TypeError
  # Returns default if it's nil or float, otherwise, force return nil
  default.is_a?(Float) || default.nil? ? default : nil
end

.fetch(key:, default: nil) ⇒ Object?

Fetches the value of an environment variable with support for SecureKeys prefix

Parameters:

  • key (Symbol)

    The environment variable key to fetch

  • default (Object) (defaults to: nil)

    The default value to return if the environment variable is not set

Returns:

  • (Object, nil)

    The value of the environment variable or the default value



12
13
14
15
# File 'lib/services/environment.rb', line 12

def fetch(key:, default: nil)
  formatted_key = key.to_s.upcase
  ENV[formatted_key] || ENV["SECURE_KEYS_#{formatted_key}"] || default
end

.integer(key:, default: nil) ⇒ Integer?

Fetches the integer value of an environment variable with support for SecureKeys prefix

Parameters:

  • key (Symbol)

    The environment variable key to fetch

  • default (Object) (defaults to: nil)

    The default value to return if the environment variable is not set or cannot be converted to an integer

Returns:

  • (Integer, nil)

    The integer value of the environment variable or the default value



21
22
23
24
25
26
27
# File 'lib/services/environment.rb', line 21

def integer(key:, default: nil)
  value = fetch(key:, default:)
  Integer(value)
rescue ArgumentError, TypeError
  # Returns default if it's nil or integer, otherwise, force return nil
  default.is_a?(Integer) || default.nil? ? default : nil
end