class Hashr::Env::Vars
Constants
- FALSE
Public Instance Methods
Source
# File lib/hashr/env.rb, line 6 def to_h defaults.deep_merge(read_env(defaults, namespace.dup)) end
Private Instance Methods
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
Source
# File lib/hashr/env.rb, line 39 def namespace Array(super && super.upcase) end
Calls superclass method
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
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