class Hashr::Env::Vars

Constants

FALSE

Public Instance Methods

to_h() click to toggle source
# File lib/hashr/env.rb, line 6
def to_h
  defaults.deep_merge(read_env(defaults, namespace.dup))
end

Private Instance Methods

cast(value, default, keys) click to toggle source
# File lib/hashr/env.rb, line 26
def cast(value, default, keys)
  case default
  when Array
    value.respond_to?(:split) ? value.split(',') : Array(value)
  when true, false
    not FALSE.include?(value)
  when Integer then Integer(value)
  when Float then Float(value)
  else
    value
  end
end
namespace() click to toggle source
Calls superclass method
# File lib/hashr/env.rb, line 39
def namespace
  Array(super && super.upcase)
end
read_env(defaults, namespace) click to toggle source
# File lib/hashr/env.rb, line 12
def read_env(defaults, namespace)
  defaults.inject({}) do |result, (key, default)|
    keys = namespace + [key]
    value = default.is_a?(Hash) ? read_env(default, keys) : var(keys, default)
    result.merge(key => value)
  end
end
var(keys, default) click to toggle source
# File lib/hashr/env.rb, line 20
def var(keys, default)
  key = keys.map(&:upcase).join('_')
  value = ENV.fetch(key, default)
  cast(value, default, keys)
end