Top Level Namespace

Defined Under Namespace

Modules: OpenTelemetry

Instance Method Summary collapse

Instance Method Details

#with_env(new_env) ⇒ Object

Copyright The OpenTelemetry Authors

SPDX-License-Identifier: Apache-2.0



7
8
9
10
11
12
13
14
15
# File 'lib/opentelemetry/common/test_helpers.rb', line 7

def with_env(new_env)
  env_to_reset = ENV.select { |k, _| new_env.key?(k) }
  keys_to_delete = new_env.keys - ENV.keys
  new_env.each_pair { |k, v| ENV[k] = v }
  yield
ensure
  env_to_reset.each_pair { |k, v| ENV[k] = v }
  keys_to_delete.each { |k| ENV.delete(k) }
end