Enumerable#each_{cons,slice} to return enumerators

parent 524a0388
...@@ -116,6 +116,7 @@ module Enumerable ...@@ -116,6 +116,7 @@ module Enumerable
raise TypeError, "no implicit conversion of #{n.class} into Integer" unless n.respond_to?(:to_int) raise TypeError, "no implicit conversion of #{n.class} into Integer" unless n.respond_to?(:to_int)
raise ArgumentError, "invalid size" if n <= 0 raise ArgumentError, "invalid size" if n <= 0
return to_enum(:each_cons,n) unless block
ary = [] ary = []
n = n.to_int n = n.to_int
self.each do |*val| self.each do |*val|
...@@ -143,6 +144,7 @@ module Enumerable ...@@ -143,6 +144,7 @@ module Enumerable
raise TypeError, "no implicit conversion of #{n.class} into Integer" unless n.respond_to?(:to_int) raise TypeError, "no implicit conversion of #{n.class} into Integer" unless n.respond_to?(:to_int)
raise ArgumentError, "invalid slice size" if n <= 0 raise ArgumentError, "invalid slice size" if n <= 0
return to_enum(:each_slice,n) unless block
ary = [] ary = []
n = n.to_int n = n.to_int
self.each do |*val| self.each do |*val|
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment