callables/block_local_before_assignment_no_parens.rb
tests/_examples/callables/block_local_before_assignment_no_parens.rb in the metorex repository.
def written_before_the_assignment
block = proc { counted = 99; counted }
counted = 1
[block.call, counted].inspect
end
puts written_before_the_assignment
def written_after_the_assignment
counted = 1
block = proc { counted = 99; counted }
[block.call, counted].inspect
end
puts written_after_the_assignment
collected = Enumerator.new do |yielder|
answered = yielder.yield 3
yielder << answered << 2 << 1
end
answered = []
collected.each { |value| answered.push value; value * 2 }
puts answered.inspect
def reads_a_later_local_from_a_rescue
begin
raise "stopped"
rescue RuntimeError
return held.inspect
end
held = 1
end
puts reads_a_later_local_from_a_rescue
Output:
[99, 1]
[99, 99]
[3, 6, 2, 1]
nil