Feature #12813

Calling chunk_while, slice_after, slice_before, slice_when with no block

Added by marcandre (Marc-Andre Lafortune) about 1 year ago. Updated 11 months ago.

Target version:


Currently, chunk_while, slice_after, slice_before, slice_when all require a block.

If one needs the index within the block, there is no good way to do this; enum.each_with_index.chunk_while would have indices in the results, so enum.enum_for(:chunk_while).with_index is the best solution.

I feel that we should return enum_for(:chunk_while). This is strictly more useful than raising as we currently do.


#1 [ruby-core:78356] Updated by shyouhei (Shyouhei Urabe) 11 months ago

  • Status changed from Open to Assigned

We briefly looked at this issue in todays developer meeting but had no time to fully agree that the proposed extension is safe. We just did not reach a conclusion.

#2 [ruby-core:78365] Updated by marcandre (Marc-Andre Lafortune) 11 months ago

It would help if you explained what is meant by "safe".

There is currently no valid usage of chunk_while, slice_after, slice_before or slice_when without a block and an argument, as they all raise an exception. So "extending" them by returning an enumerator instead can't reasonably produce a problem. So what else could be meant by "safe"?

#3 [ruby-core:78515] Updated by matz (Yukihiro Matsumoto) 11 months ago

After consideration, I accept this proposal.


Also available in: Atom PDF