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