module IceAge

Constants

VERSION
WHITELIST

Public Instance Methods

endure!() click to toggle source
# File lib/ice_age.rb, line 23
def endure!
  raise 'not frozen' unless frozen?

  changes = (Set.new(ENV.to_h) - Set.new(@env)).to_h.keys - WHITELIST
  unless changes.empty?
    msg = changes.map {|k| { k => { @env[k] => ENV[k] } }}.to_s
    raise 'ENV changed after freeze: ' + msg
  end
end
freeze() click to toggle source
# File lib/ice_age.rb, line 7
def freeze
  raise 'already frozen' if frozen?

  @env = ENV.to_h.freeze
end
frozen?() click to toggle source
# File lib/ice_age.rb, line 13
def frozen?
  !!@env
end
restore() click to toggle source
# File lib/ice_age.rb, line 17
def restore
  raise 'not frozen' unless frozen?

  ENV.replace(@env)
end