Sha256: 8e048d7f0e999ea12a2d30553cd96853c5f04ec81861e76e12defb236b1d2c0d
Contents?: true
Size: 1.28 KB
Versions: 83
Compression:
Stored size: 1.28 KB
Contents
require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/../../spec_helper' require File.dirname(File.join(__rhoGetCurrentDir(), __FILE__)) + '/fixtures/classes' describe "Enumerable#take_while" do ruby_version_is '1.8.7' do before :each do @enum = EnumerableSpecs::Numerous.new(3, 2, 1, :go) end it 'returns an Enumerator if no block given' do @enum.take_while.should be_kind_of(enumerator_class) end it "returns no/all elements for {true/false} block" do @enum.take_while{true}.should == @enum.to_a @enum.take_while{false}.should == [] end it "accepts returns other than true/false" do @enum.take_while{1}.should == @enum.to_a @enum.take_while{nil}.should == [] end it "passes elements to the block until the first false" do a = [] @enum.take_while{|obj| (a << obj).size < 3}.should == [3, 2] a.should == [3, 2, 1] end it "will only go through what's needed" do enum = EnumerableSpecs::EachCounter.new(4, 3, 2, 1, :stop) enum.take_while { |x| break 42 if x == 3 true }.should == 42 enum.times_yielded.should == 2 end it "doesn't return self when it could" do a = [1,2,3] a.take_while{true}.should_not equal(a) end end end
Version data entries
83 entries across 83 versions & 1 rubygems