class ENVied::EnvProxy
Responsible for anything related to the ENV.
Attributes
coercer[R]
config[R]
groups[R]
Public Class Methods
new(config, **options)
click to toggle source
# File lib/envied/env_proxy.rb, line 7 def initialize(config, **options) @config = config @coercer = options.fetch(:coercer, ENVied::Coercer.new) @groups = options.fetch(:groups, []) end
Public Instance Methods
[](name)
click to toggle source
# File lib/envied/env_proxy.rb, line 21 def [](name) coerce(variables_by_name[name.to_sym]) end
has_key?(name)
click to toggle source
# File lib/envied/env_proxy.rb, line 25 def has_key?(name) variables_by_name[name.to_sym] end
missing_variables()
click to toggle source
# File lib/envied/env_proxy.rb, line 13 def missing_variables variables.select(&method(:missing?)) end
uncoercible_variables()
click to toggle source
# File lib/envied/env_proxy.rb, line 17 def uncoercible_variables variables.reject(&method(:coerced?)).reject(&method(:coercible?)) end
value_to_coerce(var)
click to toggle source
# File lib/envied/env_proxy.rb, line 29 def value_to_coerce(var) return env_value_of(var) unless env_value_of(var).nil? config.defaults_enabled? ? default_value_of(var) : nil end
Private Instance Methods
coerce(var)
click to toggle source
# File lib/envied/env_proxy.rb, line 36 def coerce(var) coerced?(var) ? value_to_coerce(var) : coercer.coerce(value_to_coerce(var), var.type) end
coerced?(var)
click to toggle source
# File lib/envied/env_proxy.rb, line 42 def coerced?(var) coercer.coerced?(value_to_coerce(var)) end
coercible?(var)
click to toggle source
# File lib/envied/env_proxy.rb, line 46 def coercible?(var) coercer.coercible?(value_to_coerce(var), var.type) end
default_value_of(var)
click to toggle source
# File lib/envied/env_proxy.rb, line 50 def default_value_of(var) var.default_value(ENVied, var) end
env_value_of(var)
click to toggle source
# File lib/envied/env_proxy.rb, line 54 def env_value_of(var) ENV[var.name.to_s] end
missing?(var)
click to toggle source
# File lib/envied/env_proxy.rb, line 58 def missing?(var) value_to_coerce(var).nil? end
variables()
click to toggle source
# File lib/envied/env_proxy.rb, line 62 def variables @variables ||= config.variables.select {|v| groups.include?(v.group) } end
variables_by_name()
click to toggle source
# File lib/envied/env_proxy.rb, line 66 def variables_by_name @variables_by_name ||= variables.map {|v| [v.name, v] }.to_h end