metaprogramming/instance_exec/instance_exec_parens.rb
tests/_examples/metaprogramming/instance_exec/instance_exec_parens.rb in the metorex repository.
# instance_exec example (parens)
class Box
def initialize(val)
@value = val
end
def value
@value
end
def transform(&blk)
instance_exec(&blk)
end
def doubled
instance_exec do
@value * 2
end
end
end
b = Box.new(5)
puts(b.doubled)
b2 = Box.new(10)
puts(b2.doubled)
puts(b.transform { @value + 100 })
Output:
10
20
105