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:
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.
Updated by duerst (Martin Dürst) almost 6 years ago
Updated by marcandre (Marc-Andre Lafortune) almost 6 years ago
I imagine that Set['and', 'the', 'of'] was meant.
Updated by matz (Yukihiro Matsumoto) almost 6 years ago
Enhancing select and reject seems a good idea.
Matz.
Updated by nobu (Nobuyoshi Nakada) almost 6 years ago
I made select parts.
https://github.com/nobu/ruby/pull/new/feature/17140-enum_select
Updated by baweaver (Brandon Weaver) over 5 years ago
Would this feature still be of interest?