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