Sha256: b619c378579a27d46ddb882de8bee818711a3db382a757e0ea0c9574f23cacbd
Contents?: true
Size: 1.59 KB
Versions: 83
Compression:
Stored size: 1.59 KB
Contents
require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/../../spec_helper' require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/fixtures/classes' describe "Kernel.loop" do it "is a private method" do Kernel.should have_private_instance_method(:loop) end it "calls block until it is terminated by a break" do i = 0 loop do i += 1 break if i == 10 end i.should == 10 end it "returns value passed to break" do loop do break 123 end.should == 123 end it "returns nil if no value passed to break" do loop do break end.should == nil end ruby_version_is ""..."1.9" do it "raises a LocalJumpError if no block given" do lambda { loop }.should raise_error(LocalJumpError) end end ruby_version_is "1.9" do it "returns an enumerator if no block given" do enum = loop enum.instance_of?(enumerator_class).should be_true cnt = 0 enum.each do |*args| raise "Args should be empty #{args.inspect}" unless args.empty? cnt += 1 break cnt if cnt >= 42 end.should == 42 end end ruby_version_is "1.8.7" do it "rescues StopIteration" do n = 42 loop do raise StopIteration end 42.should == 42 end it "rescues StopIteration's subclasses" do finish = Class::new StopIteration n = 42 loop do raise finish end 42.should == 42 end it "does not rescue other errors" do lambda{ loop do raise StandardError end }.should raise_error( StandardError ) end end end
Version data entries
83 entries across 83 versions & 1 rubygems