module FlexibleConfig::WrappedEnv

Public Class Methods

[](generic_key) click to toggle source
# File lib/flexible_config/wrapped_env.rb, line 4
def [](generic_key)
  key = normalize_key generic_key
  normalize(overrides.key?(key) ? overrides[key] : ENV[key])
end
fetch(generic_key, &block) click to toggle source
# File lib/flexible_config/wrapped_env.rb, line 9
def fetch(generic_key, &block)
  key = normalize_key generic_key
  return overrides[key] if overrides.key?(key)

  normalize ENV.fetch(key, &block)
rescue KeyError => e
  raise NotFound.new key
end
int(generic_key, &block) click to toggle source
# File lib/flexible_config/wrapped_env.rb, line 18
def int(generic_key, &block)
  key = normalize_key generic_key
  val = fetch(key)
  return block.call if val.nil? && block_given?

  raise NotFound.new if val.nil?
  val.to_i
end
normalize(val) click to toggle source
# File lib/flexible_config/wrapped_env.rb, line 27
def normalize(val)
  case val.to_s.downcase
  when 'true'  then true
  when 'false' then false
  when ''      then nil
  else val
  end
end
override(key, value) click to toggle source
# File lib/flexible_config/wrapped_env.rb, line 36
def override(key, value)
  overrides[key] = value
end
reset() click to toggle source
# File lib/flexible_config/wrapped_env.rb, line 40
def reset
  @overrides = {}
end

Private Class Methods

normalize_key(key) click to toggle source
# File lib/flexible_config/wrapped_env.rb, line 50
def normalize_key(key)
  key.upcase.gsub('.', '_')
end
overrides() click to toggle source
# File lib/flexible_config/wrapped_env.rb, line 46
def overrides
  @overrides ||= {}
end