class Aruba::Platforms::WindowsEnvironmentVariables

Windows is case-insensitive when it accesses its environment variables.

To work around this we turn all of the environment variable keys to upper-case so that aruba is ensured that accessing environment variables with upper-case keys will always work. See the following examples.

@example Setting Windows environment variables using mixed case

C:>set Path
C:>Path=.;.\bin;c:\rubys\ruby-2.1.6-p336\bin;
C:>set PATH
C:>Path=.;.\bin;c:\rubys\ruby-2.1.6-p336\bin;

@example If you access environment variables through ENV, you can access values no matter the case of the key:

ENV["Path"] # => ".;.\bin;c:\rubys\ruby-2.1.6-p336\bin;"
ENV["PATH"] # => ".;.\bin;c:\rubys\ruby-2.1.6-p336\bin;"

@example But if you copy the ENV to a hash, Ruby treats the keys as case sensitive:

env_copy = ENV.to_hash
# => {
"ALLUSERSPROFILE"=>
  "C:\\ProgramData",
  "ANSICON"=>"119x1000 (119x58)",
  "ANSICON_DEF"=>"7",
  APPDATA" => "C:\\Users\\blorf\\AppData\\Roaming", ....
}
env["Path"]
# => ".;.\bin;c:\rubys\ruby-2.1.6-p336\bin;"
env["PATH"]
# => nil