Feature #17140
openMerge Enumerable#grep(_v) with Enumerable#select/reject
Description
In recent versions of Ruby we've gotten new behavior of some Enumerable methods like any?, all?, none?, one?, and others to support a single argument pattern that responds to ===
. This is very powerful, and very useful.
Currently Enumerable has grep
and grep_v
which allow this as a way to filter lists.
These names require some understanding of Unix to be familiar with, but naming aside, I feel it may make sense to implement ===
pattern arguments in Enumerable#select
and Enumerable#reject
as with the above.
Proposed Syntax:
list_of_numbers.select(1..10)
words.reject({ 'and', 'the', 'of' })
I believe this would help with readability and would simplify syntax options by unifying on this standard.
My concern is that Enumerable#find
already takes a single argument, ifnone
, and may not be able to implement this behavior. I would be curious to see how many use ifnone
but feel this would be more critically breaking to do.