diff options
Diffstat (limited to 'spec/ruby/core/enumerator/lazy')
-rw-r--r-- | spec/ruby/core/enumerator/lazy/drop_while_spec.rb | 2 | ||||
-rw-r--r-- | spec/ruby/core/enumerator/lazy/grep_spec.rb | 33 | ||||
-rw-r--r-- | spec/ruby/core/enumerator/lazy/grep_v_spec.rb | 33 | ||||
-rw-r--r-- | spec/ruby/core/enumerator/lazy/initialize_spec.rb | 6 | ||||
-rw-r--r-- | spec/ruby/core/enumerator/lazy/reject_spec.rb | 2 | ||||
-rw-r--r-- | spec/ruby/core/enumerator/lazy/shared/collect_concat.rb | 2 | ||||
-rw-r--r-- | spec/ruby/core/enumerator/lazy/shared/select.rb | 2 | ||||
-rw-r--r-- | spec/ruby/core/enumerator/lazy/take_while_spec.rb | 2 | ||||
-rw-r--r-- | spec/ruby/core/enumerator/lazy/zip_spec.rb | 2 |
9 files changed, 75 insertions, 9 deletions
diff --git a/spec/ruby/core/enumerator/lazy/drop_while_spec.rb b/spec/ruby/core/enumerator/lazy/drop_while_spec.rb index 6f6472e393..4f6e366f88 100644 --- a/spec/ruby/core/enumerator/lazy/drop_while_spec.rb +++ b/spec/ruby/core/enumerator/lazy/drop_while_spec.rb @@ -40,7 +40,7 @@ describe "Enumerator::Lazy#drop_while" do end it "raises an ArgumentError when not given a block" do - lambda { @yieldsmixed.drop_while }.should raise_error(ArgumentError) + -> { @yieldsmixed.drop_while }.should raise_error(ArgumentError) end describe "on a nested Lazy" do diff --git a/spec/ruby/core/enumerator/lazy/grep_spec.rb b/spec/ruby/core/enumerator/lazy/grep_spec.rb index e759cc4a2c..e67686c9a3 100644 --- a/spec/ruby/core/enumerator/lazy/grep_spec.rb +++ b/spec/ruby/core/enumerator/lazy/grep_spec.rb @@ -33,6 +33,39 @@ describe "Enumerator::Lazy#grep" do Enumerator::Lazy.new(Object.new, 100) {}.grep(Object).size.should == nil end + it "sets $~ in the block" do + "z" =~ /z/ # Reset $~ + ["abc", "def"].lazy.grep(/b/) { |e| + e.should == "abc" + $&.should == "b" + }.force + + # Set by the failed match of "def" + $~.should == nil + end + + it "sets $~ in the next block with each" do + "z" =~ /z/ # Reset $~ + ["abc", "def"].lazy.grep(/b/).each { |e| + e.should == "abc" + $&.should == "b" + } + + # Set by the failed match of "def" + $~.should == nil + end + + it "sets $~ in the next block with map" do + "z" =~ /z/ # Reset $~ + ["abc", "def"].lazy.grep(/b/).map { |e| + e.should == "abc" + $&.should == "b" + }.force + + # Set by the failed match of "def" + $~.should == nil + end + describe "when the returned lazy enumerator is evaluated by Enumerable#first" do it "stops after specified times when not given a block" do (0..Float::INFINITY).lazy.grep(Integer).first(3).should == [0, 1, 2] diff --git a/spec/ruby/core/enumerator/lazy/grep_v_spec.rb b/spec/ruby/core/enumerator/lazy/grep_v_spec.rb index 13d474a8c4..67173021bb 100644 --- a/spec/ruby/core/enumerator/lazy/grep_v_spec.rb +++ b/spec/ruby/core/enumerator/lazy/grep_v_spec.rb @@ -31,6 +31,39 @@ describe "Enumerator::Lazy#grep_v" do Enumerator::Lazy.new(Object.new, 100) {}.grep_v(Object).size.should == nil end + it "sets $~ in the block" do + "z" =~ /z/ # Reset $~ + ["abc", "def"].lazy.grep_v(/e/) { |e| + e.should == "abc" + $~.should == nil + }.force + + # Set by the match of "def" + $&.should == "e" + end + + it "sets $~ in the next block with each" do + "z" =~ /z/ # Reset $~ + ["abc", "def"].lazy.grep_v(/e/).each { |e| + e.should == "abc" + $~.should == nil + } + + # Set by the match of "def" + $&.should == "e" + end + + it "sets $~ in the next block with map" do + "z" =~ /z/ # Reset $~ + ["abc", "def"].lazy.grep_v(/e/).map { |e| + e.should == "abc" + $~.should == nil + }.force + + # Set by the match of "def" + $&.should == "e" + end + describe "when the returned lazy enumerator is evaluated by Enumerable#first" do it "stops after specified times when not given a block" do (0..Float::INFINITY).lazy.grep_v(3..5).first(3).should == [0, 1, 2] diff --git a/spec/ruby/core/enumerator/lazy/initialize_spec.rb b/spec/ruby/core/enumerator/lazy/initialize_spec.rb index 9fa6eff35a..88c66530b9 100644 --- a/spec/ruby/core/enumerator/lazy/initialize_spec.rb +++ b/spec/ruby/core/enumerator/lazy/initialize_spec.rb @@ -48,16 +48,16 @@ describe "Enumerator::Lazy#initialize" do end it "sets given size to own size if the given size is a Proc" do - @uninitialized.send(:initialize, @receiver, lambda { 200 }) {}.size.should == 200 + @uninitialized.send(:initialize, @receiver, -> { 200 }) {}.size.should == 200 end it "raises an ArgumentError when block is not given" do - lambda { @uninitialized.send :initialize, @receiver }.should raise_error(ArgumentError) + -> { @uninitialized.send :initialize, @receiver }.should raise_error(ArgumentError) end describe "on frozen instance" do it "raises a RuntimeError" do - lambda { @uninitialized.freeze.send(:initialize, @receiver) {} }.should raise_error(RuntimeError) + -> { @uninitialized.freeze.send(:initialize, @receiver) {} }.should raise_error(RuntimeError) end end end diff --git a/spec/ruby/core/enumerator/lazy/reject_spec.rb b/spec/ruby/core/enumerator/lazy/reject_spec.rb index 03444b471f..0e1632d667 100644 --- a/spec/ruby/core/enumerator/lazy/reject_spec.rb +++ b/spec/ruby/core/enumerator/lazy/reject_spec.rb @@ -52,7 +52,7 @@ describe "Enumerator::Lazy#reject" do end it "raises an ArgumentError when not given a block" do - lambda { @yieldsmixed.reject }.should raise_error(ArgumentError) + -> { @yieldsmixed.reject }.should raise_error(ArgumentError) end describe "on a nested Lazy" do diff --git a/spec/ruby/core/enumerator/lazy/shared/collect_concat.rb b/spec/ruby/core/enumerator/lazy/shared/collect_concat.rb index e8ee4b6940..00d7941a61 100644 --- a/spec/ruby/core/enumerator/lazy/shared/collect_concat.rb +++ b/spec/ruby/core/enumerator/lazy/shared/collect_concat.rb @@ -46,7 +46,7 @@ describe :enumerator_lazy_collect_concat, shared: true do end it "raises an ArgumentError when not given a block" do - lambda { @yieldsmixed.send(@method) }.should raise_error(ArgumentError) + -> { @yieldsmixed.send(@method) }.should raise_error(ArgumentError) end describe "on a nested Lazy" do diff --git a/spec/ruby/core/enumerator/lazy/shared/select.rb b/spec/ruby/core/enumerator/lazy/shared/select.rb index 39074408ee..50a00bcbf4 100644 --- a/spec/ruby/core/enumerator/lazy/shared/select.rb +++ b/spec/ruby/core/enumerator/lazy/shared/select.rb @@ -40,7 +40,7 @@ describe :enumerator_lazy_select, shared: true do end it "raises an ArgumentError when not given a block" do - lambda { @yieldsmixed.send(@method) }.should raise_error(ArgumentError) + -> { @yieldsmixed.send(@method) }.should raise_error(ArgumentError) end describe "on a nested Lazy" do diff --git a/spec/ruby/core/enumerator/lazy/take_while_spec.rb b/spec/ruby/core/enumerator/lazy/take_while_spec.rb index 412ff76787..bcea0b1419 100644 --- a/spec/ruby/core/enumerator/lazy/take_while_spec.rb +++ b/spec/ruby/core/enumerator/lazy/take_while_spec.rb @@ -40,7 +40,7 @@ describe "Enumerator::Lazy#take_while" do end it "raises an ArgumentError when not given a block" do - lambda { @yieldsmixed.take_while }.should raise_error(ArgumentError) + -> { @yieldsmixed.take_while }.should raise_error(ArgumentError) end describe "on a nested Lazy" do diff --git a/spec/ruby/core/enumerator/lazy/zip_spec.rb b/spec/ruby/core/enumerator/lazy/zip_spec.rb index a28a7f5d5e..5a828c1dcc 100644 --- a/spec/ruby/core/enumerator/lazy/zip_spec.rb +++ b/spec/ruby/core/enumerator/lazy/zip_spec.rb @@ -44,7 +44,7 @@ describe "Enumerator::Lazy#zip" do end it "raises a TypeError if arguments contain non-list object" do - lambda { @yieldsmixed.zip [], Object.new, [] }.should raise_error(TypeError) + -> { @yieldsmixed.zip [], Object.new, [] }.should raise_error(TypeError) end describe "on a nested Lazy" do |