class LucidUtils::ConfigFromFile
Public Instance Methods
call(path, env_prefix: nil)
click to toggle source
@param path [String] @param env_prefix [String, nil] environment variables override values in the file
@return [Hash]
# File lib/lucid_utils/config_from_file.rb, line 11 def call(path, env_prefix: nil) instance_eval(File.read(path)).tap do |result| raise TypeError, 'not and instance of Hash' unless result.is_a?(Hash) end.then do |config| env_prefix ? env_overrides(config, env_prefix) : config end end
Private Instance Methods
env_overrides(config, env_prefix)
click to toggle source
@param config [Hash] @param env_prefix [String]
@return [Hash]
# File lib/lucid_utils/config_from_file.rb, line 26 def env_overrides(config, env_prefix) config.each_with_object({}) do |(k, v), config| env_key = [env_prefix, k].join('_').upcase if v.is_a?(Hash) config[k] = env_overrides(v, env_key) else config[k] = ENV.fetch(env_key, v) end end end