Issue #7883 has been updated by Robert Klemme.


Nobuyoshi Nakada wrote:
> Nothing, and line 10 is possible with `grep`
> 
> ~~~ruby
> %w{foo bar baz}.grep(/\Ab/) {|s|break s}
> ~~~

Yes, but a bit lengthy.

> Anyway, a patch.

Cool!  Thanks a lot!

----------------------------------------
Feature #7883: Add Regex#to_proc
https://bugs.ruby-lang.org/issues/7883#change-50583

* Author: Robert Klemme
* Status: Open
* Priority: Normal
* Assignee: Yukihiro Matsumoto
* Category: core
* Target version: next minor
----------------------------------------
Just a small addition to the standard library:

~~~ruby
class Regexp
  def to_proc; lambda {|s| self =~ s} end
end
~~~

With that one can use a `Regexp` everywhere a `Proc` is used as filtering criteria saving a bit of typing.  While we have `Enumerable#grep` already there may be other cases where you want to do something like

~~~ruby
irb(main):008:0> %w{foo bar baz}.select &/\Ab/
=> ["bar", "baz"]
irb(main):009:0> %w{foo bar baz}.reject &/\Ab/
=> ["foo"]
irb(main):010:0> %w{foo bar baz}.find &/\Ab/
=> "bar"
~~~

Note: line 9 and 10 are not possible with `Enumerable#grep` AFAIK.

I see low risk of breaking something.



-- 
https://bugs.ruby-lang.org/