Class: IceAge

Inherits:
Object
  • Object
show all
Defined in:
lib/ice_age.rb

Constant Summary collapse

VERSION =
'0.1.0'

Class Method Summary collapse

Class Method Details

.endure!Object



24
25
26
27
28
29
30
# File 'lib/ice_age.rb', line 24

def endure!
  changes = (Set.new(ENV.to_h) - Set.new(@env)).to_h.keys
  unless changes.empty?
    msg = changes.map {|k| { k => { @env[k] => ENV[k] } }}.to_s
    raise 'ENV changed after freeze: ' + msg
  end
end

.freezeObject



8
9
10
11
12
# File 'lib/ice_age.rb', line 8

def freeze
  raise 'already frozen' if frozen?

  @env = ENV.to_h.freeze
end

.frozen?Boolean



14
15
16
# File 'lib/ice_age.rb', line 14

def frozen?
  !!@env
end

.restoreObject



18
19
20
21
22
# File 'lib/ice_age.rb', line 18

def restore
  raise "#{self.class.name}.frozen never called!" unless frozen?

  ENV.clear.update(@env)
end