Class: FPM::Cookery::Environment

Inherits:
Object
  • Object
show all
Defined in:
lib/fpm/cookery/environment.rb

Constant Summary collapse

REMOVALS =
%w(
  BUNDLE_GEMFILE RUBYOPT BUNDLE_BIN_PATH GEM_HOME GEM_PATH
).freeze

Instance Method Summary collapse

Constructor Details

#initializeEnvironment

Returns a new instance of Environment.



10
11
12
# File 'lib/fpm/cookery/environment.rb', line 10

def initialize
  @env = {}
end

Instance Method Details

#[](key) ⇒ Object



14
15
16
# File 'lib/fpm/cookery/environment.rb', line 14

def [](key)
  @env[key.to_s]
end

#[]=(key, value) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/fpm/cookery/environment.rb', line 18

def []=(key, value)
  if value.nil?
    @env.delete(key.to_s)
  else
    @env[key.to_s] = value.to_s
  end
end

#to_hashObject



44
45
46
# File 'lib/fpm/cookery/environment.rb', line 44

def to_hash
  @env.dup
end

#with_cleanObject



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/fpm/cookery/environment.rb', line 26

def with_clean
  saved_env = ENV.to_hash

  REMOVALS.each do |var|
    value = ENV.delete(var)
    Log.debug("Removing '#{var}' => '#{value}' from environment")
  end

  @env.each do |k, v|
    Log.debug("Adding '#{k}' => '#{v}' to environment")
    ENV[k] = v
  end

  yield
ensure
  ENV.replace(saved_env.to_hash)
end