def exec (*args, &block)
      if @scope
        @scope.instance_variables.each do |name|
          instance_variable_set(name, @scope.instance_variable_get(name))
        end
      end

      @ivars.each do |name, value|
        instance_variable_set(name, value)
      end
      
      instance_exec(*args, &block)
    end
def exec (*args, &block)
      if @scope
        @scope.instance_variables.each do |name|
          instance_variable_set(name, @scope.instance_variable_get(name))
        end
      end

      @ivars.each do |name, value|
        instance_variable_set(name, value)
      end
      
      instance_exec(*args, &block)
    end
Execute a block in the manipulated environment.

 Additional arguments will be passed to the block.

 Returns the return value of the block