https://redmine.ruby-lang.org/https://redmine.ruby-lang.org/favicon.ico?17113305112019-09-03T12:58:11ZRuby Issue Tracking SystemRuby master - Feature #16137: Add === to UnboundMethodhttps://redmine.ruby-lang.org/issues/16137?journal_id=813732019-09-03T12:58:11Zosyo (manga osyo)
<ul></ul><p>hi.</p>
<p>How about making <code># bind_call</code> an alias of<code># ===</code>?</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="k">class</span> <span class="nc">UnboundMethod</span>
<span class="kp">alias_method</span> <span class="ss">:===</span><span class="p">,</span> <span class="ss">:bind_call</span>
<span class="k">end</span>
</code></pre>
<p>see: <a href="https://bugs.ruby-lang.org/issues/15955#note-10" class="external">https://bugs.ruby-lang.org/issues/15955#note-10</a></p>
<p>Also, you should consider the difference between <code>when Integer.instance_method(:positive?)</code> or <code>when: positive?.to_proc</code>.</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="k">case</span> <span class="mi">11</span>
<span class="k">when</span> <span class="ss">:positive?</span><span class="p">.</span><span class="nf">to_proc</span> <span class="k">then</span> <span class="ss">:positive</span>
<span class="k">end</span>
</code></pre>
<p>or</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="k">case</span> <span class="mi">11</span>
<span class="k">when</span> <span class="no">Integer</span><span class="p">.</span><span class="nf">instance_method</span><span class="p">(</span><span class="ss">:positive?</span><span class="p">)</span> <span class="k">then</span> <span class="ss">:positive</span>
<span class="k">end</span>
</code></pre>
<p>Thank you :)</p> Ruby master - Feature #16137: Add === to UnboundMethodhttps://redmine.ruby-lang.org/issues/16137?journal_id=813742019-09-03T14:50:20Zshevegen (Robert A. Heiler)shevegen@gmail.com
<ul></ul><p>Since I love case/when statements in ruby, and I also like the idea to decouple methods<br>
at "runtime", I agree with okuramasafumi.</p>
<p>I can not add much to potential use cases or what osyo asked, but personally I just like<br>
the idea. :)</p> Ruby master - Feature #16137: Add === to UnboundMethodhttps://redmine.ruby-lang.org/issues/16137?journal_id=813932019-09-04T14:09:16Znobu (Nobuyoshi Nakada)nobu@ruby-lang.org
<ul></ul><p>As <code>UnboundMethod#bind_call</code> raises a <code>TypeError</code> unless the argument class matches, it isn't for <code>when</code>.</p>
<p>And the example doesn't look more readable to me.</p> Ruby master - Feature #16137: Add === to UnboundMethodhttps://redmine.ruby-lang.org/issues/16137?journal_id=814452019-09-07T11:05:54ZEregon (Benoit Daloze)
<ul></ul><p>With the new pattern matching:</p>
<pre><code class="ruby syntaxhl" data-language="ruby"><span class="k">case</span> <span class="mi">11</span>
<span class="k">in</span> <span class="n">n</span> <span class="k">if</span> <span class="n">n</span><span class="p">.</span><span class="nf">positive?</span>
<span class="nb">p</span> <span class="ss">:positive</span>
<span class="k">end</span>
</code></pre>
<p>Isn't that more readable and general?</p> Ruby master - Feature #16137: Add === to UnboundMethodhttps://redmine.ruby-lang.org/issues/16137?journal_id=1061002024-01-09T09:18:44Zokuramasafumi (Masafumi OKURA)
<ul></ul><p>Now that we have had pattern match for a while, I agree with Eregon, we can utilize it more rather than adding new methods.<br>
I cannot change its status so I hope someone will do so instead of me.</p> Ruby master - Feature #16137: Add === to UnboundMethodhttps://redmine.ruby-lang.org/issues/16137?journal_id=1061052024-01-09T10:22:55Zbyroot (Jean Boussier)byroot@ruby-lang.org
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Closed</i></li></ul>