This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.

Stopping an Iteration
CodeExpectedActual
1.upto(10) do |x| 
  puts x
  break if x == 3
end
1
2
3
1
2
3
block = Proc.new do |x|
  puts x
  break if x == 3
  puts x + 2
end
block.call(5)
5
7
5
7
block.call(3)
3
LocalJumpError: break from proc-closure
...
3
LocalJumpError: break from proc-closure
	from (irb):7:in `call'
	from (irb):11
def find(*paths)
  paths.each do |p|
    catch(:prune) do     
      #Process p as a file or directory...
    end
    # When you call Fine.prune you'll end up here.
  end
end
def prune
  throw :prune
end
nil