class Fig::EnvironmentVariables::CaseInsensitive

Manager of a set of environment variables where the variable names are case-insensitive, e.g. on MS Windows.

Public Instance Methods

[](key) click to toggle source
# File lib/fig/environment_variables/case_insensitive.rb, line 13
def [](key)
  return @variables[key_to_store_under(key)]
end
[]=(key, new_value) click to toggle source
# File lib/fig/environment_variables/case_insensitive.rb, line 17
def []=(key, new_value)
  @variables[key_to_store_under(key)] = new_value

  return
end
prepend_variable(key, new_value) click to toggle source
# File lib/fig/environment_variables/case_insensitive.rb, line 23
def prepend_variable(key, new_value)
  existing_key = key_to_store_under(key)

  if existing_key
    assign_value_to_existing_key(existing_key, new_value)
  else
    @variables[key] = new_value
  end

  return
end

Private Instance Methods

assign_value_to_existing_key(existing_key, new_value) click to toggle source
# File lib/fig/environment_variables/case_insensitive.rb, line 37
def assign_value_to_existing_key(existing_key, new_value)
  current_value = @variables[existing_key]
  if current_value
    @variables[existing_key] = new_value + File::PATH_SEPARATOR + current_value
  else
    @variables[existing_key] = new_value
  end

  return
end
key_to_store_under(key) click to toggle source
# File lib/fig/environment_variables/case_insensitive.rb, line 48
def key_to_store_under(key)
  return @variables.keys.detect(lambda {key}) {|stored| stored.downcase == key.downcase}
end