Method: Kernel#temporarily
- Defined in:
- lib/core/facets/kernel/temporarily.rb
#temporarily(settings) ⇒ Object
Temporarily set variables while yielding a block, then return the variables to their original settings when complete.
temporarily('$VERBOSE'=>false) do
$VERBOSE.assert == false
end
10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/core/facets/kernel/temporarily.rb', line 10 def temporarily(settings) #:yield: cache = {} settings.each do |var, val| cache[var] = eval("#{var}") eval("proc{ |v| #{var} = v }").call(val) end yield ensure cache.each do |var, val| eval("proc{ |v| #{var} = v }").call(val) end end |