Sha256: fca1988dee4fb1c1e93df9ee1cfe6d350a8d19b53583bbaf886f445106ab3f6e
Contents?: true
Size: 1.33 KB
Versions: 83
Compression:
Stored size: 1.33 KB
Contents
require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/../spec_helper' describe "The loop expression" do it "repeats the given block until a break is called" do outer_loop = 0 loop do outer_loop += 1 break if outer_loop == 10 end outer_loop.should == 10 end it "executes code in its own scope" do loop do inner_loop = 123 break end lambda { inner_loop }.should raise_error(NameError) end it "returns the value passed to break if interrupted by break" do loop do break 123 end.should == 123 end it "returns nil if interrupted by break with no arguments" do loop do break end.should == nil end it "skips to end of body with next" do a = [] i = 0 loop do break if (i+=1) >= 5 next if i == 3 a << i end a.should == [1, 2, 4] end it "restarts the current iteration with redo" do a = [] loop do a << 1 redo if a.size < 2 a << 2 break if a.size == 3 end a.should == [1, 1, 2] end it "uses a spaghetti nightmare of redo, next and break" do a = [] loop do a << 1 redo if a.size == 1 a << 2 next if a.size == 3 a << 3 break if a.size > 6 end a.should == [1, 1, 2, 1, 2, 3, 1, 2, 3] end end
Version data entries
83 entries across 83 versions & 1 rubygems