I'd like to propose a new method for Enumerator which returns whether there will be a next value in the enumerator when calling
It should work like this ruby demo:
class Enumerator def next? peek true rescue StopIteration false end end a = [1,2,3] e = a.to_enum p e.next? #=> true p e.next #=> 1 p e.next? #=> true p e.next #=> 2 p e.next? #=> true p e.next #=> 3 p e.next? #=> false p e.next #raises StopIteration
I propose the method to be called
next? as it returns either
I am aware that we can currently figure out if there is a next value by using
rescue (as in the code snippet above), but it is ugly since it covers many lines and uses exceptions for control flow.
next? method makes enumerators a little nicer to work with.
A patch with an example implementation for ruby trunk is attached (in git-diff format, any feedback welcome).
I agree that my patch will be licensed under the Ruby License.