class Google::Cloud::Env::Variables

Access to system environment variables.

This is a hashlike object that controls access to environment variable data. It supports temporarily changing the data source (i.e. swapping ::ENV out for a different set of data) for mocking.

Attributes

backing_data[RW]

The backing data is a hash or hash-like object that represents the environment variable data. This can either be the actual environment variables object (i.e. ENV) or a substitute hash used for mocking.

@return [Hash{String=>String}]

Public Class Methods

new() click to toggle source

Create an enviroment variables access object. This is initially backed by the actual environment variables (i.e. ENV).

# File lib/google/cloud/env/variables.rb, line 33
def initialize
  @backing_data = ::ENV
end

Public Instance Methods

[](key) click to toggle source

Fetch the given environment variable from the backing data.

@param key [String] @return [String,nil]

# File lib/google/cloud/env/variables.rb, line 43
def [] key
  @backing_data[key.to_s]
end
Also aliased as: get
get(key)
Alias for: []
with_backing_data(temp_backing_data) { || ... } click to toggle source

Run the given block with the backing data replaced with the given hash. The original backing data is restored afterward. This is used for debugging/testing/mocking.

@param temp_backing_data [Hash{String=>String}]

# File lib/google/cloud/env/variables.rb, line 64
def with_backing_data temp_backing_data
  old_backing_data = @backing_data
  begin
    @backing_data = temp_backing_data
    yield
  ensure
    @backing_data = old_backing_data
  end
end