class EnvManifest::Settings
Attributes
file_path[R]
Public Class Methods
new(file_path)
click to toggle source
# File lib/env_manifest/settings.rb, line 7 def initialize(file_path) @file_path = file_path load_defaults validate end
Public Instance Methods
[](key)
click to toggle source
# File lib/env_manifest/settings.rb, line 13 def [](key) val = ENV[key] return val end
Private Instance Methods
app_json()
click to toggle source
# File lib/env_manifest/settings.rb, line 42 def app_json file = File.read(file_path) JSON.parse(file) end
load_defaults()
click to toggle source
# File lib/env_manifest/settings.rb, line 20 def load_defaults manifest.env.each do |key, value| if ENV[key].nil? || ENV[key] == '' ENV[key] = value.value || manifest.environments&.dig(Rails.env)&.env&.dig(key)&.value end end end
manifest()
click to toggle source
# File lib/env_manifest/settings.rb, line 38 def manifest AppManifest(app_json) end
required_envs()
click to toggle source
# File lib/env_manifest/settings.rb, line 34 def required_envs @required_envs ||= manifest.env.select { |_key, value| value.required } end
validate()
click to toggle source
# File lib/env_manifest/settings.rb, line 28 def validate required_envs.each do |key, _value| raise MissingRequiredEnv, "Missing #{key}" unless ENV[key].present? end end