From: jr.sunny@... Date: 2018-05-16T04:05:06+00:00 Subject: [ruby-core:87055] [Ruby trunk Feature#14763] Allow more Enumerable methods to accept method names as symbol arguments Issue #14763 has been updated by sunnyrjuneja (Sunny Juneja). Hey Shevegen, Thank you for your comments. I really apperciate them! I'll respond inline: shevegen (Robert A. Heiler) wrote: > Is there any reason why you did use ":even?" rather > than ":even"? > > [2,4,6].all?(:even) The only reason I used :even? rather than :even is because Integer has a method called even?. In this case, my example is a shorthand for ```ruby [2, 4, 6].all? { |x| x.even? } ``` I just wanted to show an example with a real method. > I am mostly neutral on the proposal itself and slightly in > favour, primarily because I like symbols and I think there > is no problem with it. It should, if accepted, be documented > somewhere though. That's a very good point. I forgot to mention it in my original proposal but I wanted to document in the same way inject does. See: http://ruby-doc.org/core-2.5.1/Enumerable.html#method-i-inject It reads: ``` inject(sym) -> obj # Sum some numbers (5..10).reduce(:+) ``` > If you would like to, you could add your issue at: > > https://bugs.ruby-lang.org/issues/14698 Thank you! I had no such idea of such a meeting. I will add it to the issue now. ---------------------------------------- Feature #14763: Allow more Enumerable methods to accept method names as symbol arguments https://bugs.ruby-lang.org/issues/14763#change-72015 * Author: sunnyrjuneja (Sunny Juneja) * Status: Open * Priority: Normal * Assignee: * Target version: ---------------------------------------- Enumerable has a short hand which accepts method names as symbols. ```ruby (5..10).reduce(:+) #=> 45 ``` I'm proposing we allow the same functionality for #any?, #all?, #find, #reject, #select, #one?, #find_index. I'm requesting this because when I did this earlier today and it did not meet my expectations: ```ruby [2,4,6].all?(:even?) #=> false ``` * Any risk of incompatibility? I don't believe so. As of now, #any? accepts an argument and compares using ===. The following is current behavior: ```ruby [Symbol].any?(:even?) #=> false [:symbol].any?(:even?) #=> false [].all?(:even?) #=> true ``` Thanks for consideration of this request. I've used Ruby for 6 years and this is my first feature request. I understand if it is not a high priority or interesting to the maintainers. I am happy to try to add an implementation if it is interesting. -- https://bugs.ruby-lang.org/ Unsubscribe: