class Unenviable::ENVWrapper
Wraps the ENV variable to catch calls to ENV where the value is missing or not specified in Unenviable's YAML file.
Public Class Methods
new()
click to toggle source
# File lib/unenviable/env_wrapper.rb, line 5 def initialize @saved_env = ENV @closed = false @missing_descriptions = [] end
Public Instance Methods
[](key)
click to toggle source
# File lib/unenviable/env_wrapper.rb, line 11 def [](key) fail "Requested ENV[#{key}] after initialization finished!" if @closed value = @saved_env[key] @missing_descriptions << key unless Unenviable.described?(key) return value unless value.nil? 'MISSING VALUE' end
[]=(key, value)
click to toggle source
# File lib/unenviable/env_wrapper.rb, line 19 def []=(key, value) @saved_env[key] = value end
close_wrapper()
click to toggle source
# File lib/unenviable/env_wrapper.rb, line 28 def close_wrapper @closed = true fail "Requested Keys [#{@missing_descriptions.join(', ')}] which are not described!" unless @missing_descriptions.empty? end
restore_saved()
click to toggle source
# File lib/unenviable/env_wrapper.rb, line 23 def restore_saved Object.send(:remove_const, :ENV) Object.const_set(:ENV, @saved_env) end