module CfScript::Scope::Execution
Public Instance Methods
exec_in(inner, *args, &block)
click to toggle source
# File lib/cf_script/scope.rb, line 5 def exec_in(inner, *args, &block) outer = eval('self', block.binding) outer = CfScript::Scope::Root.new if outer.class == Object inner_proxy = CfScript::Scope::Proxy.new(inner, outer) begin outer.instance_variables.each do |var| val = outer.instance_variable_get(var) inner_proxy.instance_variable_set(var, val) end inner_proxy.instance_exec(*args, &block) ensure outer.instance_variables.each do |var| val = inner_proxy.instance_variable_get(var) outer.instance_variable_set(var, val) end end end