https://redmine.ruby-lang.org/
https://redmine.ruby-lang.org/favicon.ico?1711330511
2013-02-19T19:24:15Z
Ruby Issue Tracking System
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=36601
2013-02-19T19:24:15Z
nobu (Nobuyoshi Nakada)
nobu@ruby-lang.org
<ul></ul><p>You can use <code>/\Ab/.method(:=~)</code>.</p>
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=36602
2013-02-19T19:41:51Z
Anonymous
<ul></ul><blockquote>
<p>You can use <code>/\Ab/.method(:=~)</code>.</p>
</blockquote>
<p>This is more typing than just using '<code>{ |x| x =~ /\Ab/ }</code>'.</p>
<p>I like this idea, it's something I have to do quite often.</p>
<p>I've also wanted a 'grep_v' method before, but reject with <code>Regexp#to_proc</code> would suit perfectly.</p>
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=36603
2013-02-19T19:53:16Z
regularfry (Alex Young)
alex@blackkettle.org
<ul></ul><p>On 19/02/2013 07:58, rklemme (Robert Klemme) wrote:</p>
<blockquote>
<p>Issue <a class="issue tracker-2 status-1 priority-4 priority-default" title="Feature: Add Regex#to_proc (Open)" href="https://redmine.ruby-lang.org/issues/7883">#7883</a> has been reported by rklemme (Robert Klemme).</p>
</blockquote>
<p>Lovely. Definite +1 from me (for whatever that's worth).</p>
<p>--<br>
Alex</p>
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=36606
2013-02-19T20:47:46Z
rklemme (Robert Klemme)
shortcutter@googlemail.com
<ul></ul><p>nobu (Nobuyoshi Nakada) wrote:</p>
<blockquote>
<p>You can use <code>/\Ab/.method(:=~)</code>.</p>
</blockquote>
<p>Yes, but that's not the point. In that case I'd prefer the real block as Charlie suggested.</p>
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=36617
2013-02-19T23:06:42Z
prijutme4ty (Ilya Vorontsov)
prijutme4ty@gmail.com
<ul></ul><p>Cool idea. +1</p>
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=36619
2013-02-19T23:23:16Z
judofyr (Magnus Holm)
judofyr@gmail.com
<ul></ul><blockquote>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="k">class</span> <span class="nc">Regexp</span>
<span class="k">def</span> <span class="nf">to_proc</span><span class="p">;</span> <span class="nb">lambda</span> <span class="p">{</span><span class="o">|</span><span class="n">s</span><span class="o">|</span> <span class="nb">self</span> <span class="o">=~</span> <span class="n">s</span><span class="p">}</span> <span class="k">end</span>
<span class="k">end</span>
</code></pre>
</blockquote>
<p>A more general case:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="k">class</span> <span class="nc">Object</span>
<span class="k">def</span> <span class="nf">to_proc</span>
<span class="nb">lambda</span> <span class="p">{</span> <span class="o">|</span><span class="n">other</span><span class="o">|</span> <span class="nb">self</span> <span class="o">===</span> <span class="n">other</span> <span class="p">}</span>
<span class="k">end</span>
<span class="k">end</span>
</code></pre>
<p>(Not that I think this is going to be accepted…)</p>
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=36624
2013-02-20T01:58:09Z
injekt (Lee Jarvis)
ljjarvis@gmail.com
<ul></ul><p>I like this, and I especially like the modified version from judofyr. You could also do <code>["abc", 3, "foo", etc].find(&Integer)</code> which is neat, but maybe that's a push in the wrong direction, I'm not sure.</p>
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=36710
2013-02-21T22:36:41Z
goshakkk (Gosha Arinich)
me@goshakkk.name
<ul></ul><p>Nice one, +1 on it as well.</p>
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=36712
2013-02-21T23:23:22Z
jjyr (Jinyang Jiang)
jjyruby@gmail.com
<ul></ul><p>judofyr (Magnus Holm) wrote:</p>
<blockquote>
<blockquote>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="k">class</span> <span class="nc">Regexp</span>
<span class="k">def</span> <span class="nf">to_proc</span><span class="p">;</span> <span class="nb">lambda</span> <span class="p">{</span><span class="o">|</span><span class="n">s</span><span class="o">|</span> <span class="nb">self</span> <span class="o">=~</span> <span class="n">s</span><span class="p">}</span> <span class="k">end</span>
<span class="k">end</span>
</code></pre>
</blockquote>
<p>A more general case:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="k">class</span> <span class="nc">Object</span>
<span class="k">def</span> <span class="nf">to_proc</span>
<span class="nb">lambda</span> <span class="p">{</span> <span class="o">|</span><span class="n">other</span><span class="o">|</span> <span class="nb">self</span> <span class="o">===</span> <span class="n">other</span> <span class="p">}</span>
<span class="k">end</span>
<span class="k">end</span>
</code></pre>
<p>(Not that I think this is going to be accepted…)</p>
</blockquote>
<p>cool!</p>
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=36732
2013-02-22T09:04:41Z
ko1 (Koichi Sasada)
<ul><li><strong>Assignee</strong> set to <i>matz (Yukihiro Matsumoto)</i></li><li><strong>Target version</strong> changed from <i>1.9.3</i> to <i>2.6</i></li></ul>
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=50567
2014-12-23T00:01:49Z
rklemme (Robert Klemme)
shortcutter@googlemail.com
<ul></ul><p>Was any of the two suggested forms ever realized?</p>
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=50575
2014-12-23T03:09:02Z
nobu (Nobuyoshi Nakada)
nobu@ruby-lang.org
<ul><li><strong>Description</strong> updated (<a title="View differences" href="/journals/50575/diff?detail_id=36356">diff</a>)</li></ul><p>Nothing, and line 10 is possible with <code>grep</code></p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="sx">%w{foo bar baz}</span><span class="p">.</span><span class="nf">grep</span><span class="p">(</span><span class="sr">/\Ab/</span><span class="p">)</span> <span class="p">{</span><span class="o">|</span><span class="n">s</span><span class="o">|</span><span class="k">break</span> <span class="n">s</span><span class="p">}</span>
</code></pre>
<p>Anyway, a patch.</p>
<pre><code class="diff syntaxhl" data-language="diff"><span class="gh">diff --git i/re.c w/re.c
index 1a0f0b1..d345f17 100644
</span><span class="gd">--- i/re.c
</span><span class="gi">+++ w/re.c
</span><span class="p">@@ -801,6 +801,19 @@</span> rb_reg_named_captures(VALUE re)
return hash;
}
<span class="gi">+static VALUE
+rb_reg_to_proc(VALUE re)
+{
+ const ID id = 1;
+ VALUE proc = rb_attr_get(re, id);
+ if (NIL_P(proc)) {
+ proc = rb_obj_method(re, ID2SYM(rb_intern("=~")));
+ proc = rb_funcall(proc, rb_intern("to_proc"), 0, 0);
+ rb_ivar_set(re, id, proc);
+ }
+ return proc;
+}
+
</span> static int
onig_new_with_source(regex_t** reg, const UChar* pattern, const UChar* pattern_end,
OnigOptionType option, OnigEncoding enc, const OnigSyntaxType* syntax,
<span class="p">@@ -3660,6 +3673,7 @@</span> Init_Regexp(void)
rb_define_method(rb_cRegexp, "fixed_encoding?", rb_reg_fixed_encoding_p, 0);
rb_define_method(rb_cRegexp, "names", rb_reg_names, 0);
rb_define_method(rb_cRegexp, "named_captures", rb_reg_named_captures, 0);
<span class="gi">+ rb_define_method(rb_cRegexp, "to_proc", rb_reg_to_proc, 0);
</span>
/* see Regexp.options and Regexp.new */
rb_define_const(rb_cRegexp, "IGNORECASE", INT2FIX(ONIG_OPTION_IGNORECASE));
</code></pre>
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=50583
2014-12-23T13:15:49Z
rklemme (Robert Klemme)
shortcutter@googlemail.com
<ul></ul><p>Nobuyoshi Nakada wrote:</p>
<blockquote>
<p>Nothing, and line 10 is possible with <code>grep</code></p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="sx">%w{foo bar baz}</span><span class="p">.</span><span class="nf">grep</span><span class="p">(</span><span class="sr">/\Ab/</span><span class="p">)</span> <span class="p">{</span><span class="o">|</span><span class="n">s</span><span class="o">|</span><span class="k">break</span> <span class="n">s</span><span class="p">}</span>
</code></pre>
</blockquote>
<p>Yes, but a bit lengthy.</p>
<blockquote>
<p>Anyway, a patch.</p>
</blockquote>
<p>Cool! Thanks a lot!</p>
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=50598
2014-12-24T01:17:15Z
sawa (Tsuyoshi Sawada)
<ul></ul><p>If the proposed patch to issue <a class="issue tracker-2 status-7 priority-4 priority-default closed" title="Feature: Logic with `Enumerable#grep` (Feedback)" href="https://redmine.ruby-lang.org/issues/9602">#9602</a> gets accepted, then that will cover this issue in a more general way.</p>
Ruby master - Feature #7883: Add Regex#to_proc
https://redmine.ruby-lang.org/issues/7883?journal_id=68892
2017-12-25T18:15:11Z
naruse (Yui NARUSE)
naruse@airemix.jp
<ul><li><strong>Target version</strong> deleted (<del><i>2.6</i></del>)</li></ul>