Sha256: 05ccc58c9391f604907e87707877dfe2af571298e1ff3c95714c7e3d48162505
Contents?: true
Size: 742 Bytes
Versions: 5
Compression:
Stored size: 742 Bytes
Contents
module InEnvironment private # Create an environment for a test. At the completion of the yielded # block, the environment is restored to its original conditions. def in_environment(settings=nil) settings ||= {} full_settings = {"RAKEOPT" => nil}.merge(settings) original_settings = set_env(full_settings) yield ensure set_env(original_settings) rescue nil end # Set the environment according to the settings hash. def set_env(settings) # :nodoc: result = {} settings.each do |k, v| result[k] = ENV[k] if k == 'PWD' result[k] = Dir.pwd Dir.chdir(v) elsif v.nil? ENV.delete(k) else ENV[k] = v end end result end end
Version data entries
5 entries across 5 versions & 2 rubygems