Class: FPM::Cookery::Environment
- Inherits:
-
Object
- Object
- FPM::Cookery::Environment
- 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
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
-
#initialize ⇒ Environment
constructor
A new instance of Environment.
- #to_hash ⇒ Object
- #with_clean ⇒ Object
Constructor Details
#initialize ⇒ Environment
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_hash ⇒ Object
44 45 46 |
# File 'lib/fpm/cookery/environment.rb', line 44 def to_hash @env.dup end |
#with_clean ⇒ Object
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 |