From: Joel VanderWerf Date: 2009-06-05T06:48:43+09:00 Subject: Re: Question about exiting from a block Guoliang Cao wrote: > def test > puts 'before' > yield 2 > puts 'after' > end > > test do |i| > XXX if i > 1 > # a lot of code appears below > end > > > I have code above and wonder if it is possible to use > return/break/anything to stop execution of block and return control to > test() to execute code after yield. I know it is impossible in 1.8. How > about 1.9? Does anyone feel this is an important feature to have? It is possible in 1.8, using the next keyword: def test puts 'before' yield 2 puts 'after' end test do |i| next if i > 1 puts "a lot of code" end -- vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407