class Aruba::Platforms::UnixEnvironmentVariables

Abstract environment variables

Constants

UNDEFINED

We need to use this, because `nil` is a valid value as default

Attributes

env[R]

Public Class Methods

new(env = ENV.to_hash) click to toggle source
# File lib/aruba/platforms/unix_environment_variables.rb, line 16
def initialize(env = ENV.to_hash)
  @env = Marshal.load(Marshal.dump(env))
end

Public Instance Methods

[](name) click to toggle source

Get value of variable

@param [#to_s] name

The name of the variable
# File lib/aruba/platforms/unix_environment_variables.rb, line 68
def [](name)
  env[name.to_s]
end
[]=(name, value) click to toggle source

Set value of variable

@param [#to_s] name

The name of the variable

@param [#to_s] value

The value of the variable
# File lib/aruba/platforms/unix_environment_variables.rb, line 79
def []=(name, value)
  env[name.to_s] = value.to_s

  self
end
append(name, value) click to toggle source

Append value to variable

@param [#to_s] name

The name of the variable

@param [#to_s] value

The value of the variable
# File lib/aruba/platforms/unix_environment_variables.rb, line 92
def append(name, value)
  name = name.to_s
  env[name] = env[name].to_s + value.to_s

  self
end
clear() click to toggle source

Reset environment

# File lib/aruba/platforms/unix_environment_variables.rb, line 136
def clear
  env.clear

  self
end
delete(name) click to toggle source

Delete variable

@param [#to_s] name

The name of the variable
# File lib/aruba/platforms/unix_environment_variables.rb, line 117
def delete(name)
  env.delete name.to_s

  self
end
fetch(name, default = UNDEFINED) click to toggle source

Fetch variable from environment

@param [#to_s] name

The name of the variable

@param [Object] default

The default value used, if the variable is not defined
# File lib/aruba/platforms/unix_environment_variables.rb, line 48
def fetch(name, default = UNDEFINED)
  if default == UNDEFINED
    env.fetch name.to_s
  else
    env.fetch name.to_s, default
  end
end
key?(name) click to toggle source

Check if variable exist

@param [#to_s] name

The name of the variable
# File lib/aruba/platforms/unix_environment_variables.rb, line 60
def key?(name)
  env.key? name.to_s
end
prepend(name, value) click to toggle source

Prepend value to variable

@param [#to_s] name

The name of the variable

@param [#to_s] value

The value of the variable
# File lib/aruba/platforms/unix_environment_variables.rb, line 106
def prepend(name, value)
  name = name.to_s
  env[name] = value.to_s + env[name].to_s

  self
end
to_h() click to toggle source

Convert to hash

@return [Hash]

A new hash from environment
# File lib/aruba/platforms/unix_environment_variables.rb, line 127
def to_h
  if RUBY_VERSION < '2.0'
    Marshal.load(Marshal.dump(env.to_hash))
  else
    Marshal.load(Marshal.dump(env.to_h))
  end
end
update(other_env, &block) click to toggle source

Update environment with other en

@param [#to_hash, to_h] other_env

Another environment object or hash

@yield

Pass block to env
# File lib/aruba/platforms/unix_environment_variables.rb, line 27
def update(other_env, &block)
  if RUBY_VERSION <= '1.9.3'
    # rubocop:disable Style/EachWithObject
    other_env = other_env.to_hash.inject({}) { |a, (k, v)| a[k] = v.to_s; a }
    # rubocop:enable Style/EachWithObject
  else
    other_env = other_env.to_h.each_with_object({}) { |(k, v), a| a[k] = v.to_s }
  end

  env.update(other_env, &block)

  self
end