Module: ClimateControl
- Extended by:
- ClimateControl, Gem::Deprecate
- Included in:
- ClimateControl
- Defined in:
- lib/climate_control.rb,
lib/climate_control/errors.rb,
lib/climate_control/version.rb
Defined Under Namespace
Classes: UnassignableValueError
Constant Summary
collapse
- VERSION =
"1.2.0".freeze
Instance Method Summary
collapse
Instance Method Details
#env ⇒ Object
56
57
58
|
# File 'lib/climate_control.rb', line 56
def env
ENV
end
|
#modify(environment_overrides = {}, &block) ⇒ Object
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/climate_control.rb', line 12
def modify(environment_overrides = {}, &block)
environment_overrides = environment_overrides.transform_keys(&:to_s)
SEMAPHORE.synchronize do
previous = ENV.to_hash
begin
copy environment_overrides
ensure
middle = ENV.to_hash
end
block.call
ensure
after = ENV
(previous.keys | middle.keys | after.keys).each do |key|
if previous[key] != after[key] && middle[key] == after[key]
ENV[key] = previous[key]
end
end
end
end
|
#unsafe_modify(environment_overrides = {}, &block) ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/climate_control.rb', line 35
def unsafe_modify(environment_overrides = {}, &block)
environment_overrides = environment_overrides.transform_keys(&:to_s)
previous = ENV.to_hash
begin
copy environment_overrides
ensure
middle = ENV.to_hash
end
block.call
ensure
after = ENV
(previous.keys | middle.keys | after.keys).each do |key|
if previous[key] != after[key] && middle[key] == after[key]
ENV[key] = previous[key]
end
end
end
|