Module: RSpecPower::EnvHelpers

Defined in:
lib/rspec_power/env.rb

Instance Method Summary collapse

Instance Method Details

#with_test_env(overrides = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/rspec_power/env.rb', line 3

def with_test_env(overrides = {})
  old_values = overrides.each_with_object({}) do |(key, _), memo|
    memo[key] = ENV.key?(key) ? ENV[key] : :__undefined__
  end

  # apply overrides (stringify keys just in case)
  overrides.each { |k, v| ENV[k.to_s] = v }

  yield
ensure
  # restore old values
  old_values.each do |key, val|
    if val == :__undefined__
      ENV.delete(key)
    else
      ENV[key] = val
    end
  end
end