cache_environment_after_block()
click to toggle source
def cache_environment_after_block
@env_after_block = clone_environment
end
clone_environment()
click to toggle source
def clone_environment
ENV.to_hash
end
copy_overrides_to_environment()
click to toggle source
def copy_overrides_to_environment
@environment_overrides.each do |key, value|
ENV[key] = value
end
end
delete_keys_that_do_not_belong()
click to toggle source
def delete_keys_that_do_not_belong
(keys_to_remove - keys_changed_by_block).each {|key| ENV.delete(key) }
end
keys_changed_by_block()
click to toggle source
def keys_changed_by_block
@keys_changed_by_block ||= OverlappingKeysWithChangedValues.new(@env_with_overrides_before_block, @env_after_block).keys
end
keys_to_remove()
click to toggle source
def keys_to_remove
@environment_overrides.keys
end
prepare_environment_for_block()
click to toggle source
def prepare_environment_for_block
@original_env = clone_environment
copy_overrides_to_environment
@env_with_overrides_before_block = clone_environment
end
revert_changed_keys()
click to toggle source
def revert_changed_keys
(@original_env.keys - keys_changed_by_block).each do |key|
ENV[key] = @original_env[key]
end
end
run_block()
click to toggle source
def run_block
@block.call
end