I just ran into this issue, and I would actually call it a bug since it 
causes very unexpected behavior:

> User.count { |user| user.not_a_method! }
=> 10

So the block isn't even being evaluated. I'm fine if we don't delegate to 
Enumerable, but I would expect #count to at least raise an error if a block 
is given so people don't accidentally try to count with a predicate and get 
the wrong answer.

On Friday, February 1, 2013 at 10:12:36 AM UTC-8, Matt Jones wrote:
>
>
> On Jan 31, 2013, at 1:35 PM, Christian Romney wrote: 
>
> > Hi all, 
> > 
> > I realize this behavior is by design, and in some respects the right 
> thing to do. It also pre-dates the addition of Enumerable#count. I'm 
> wondering, however, if it's possible/desirable to allow the caller to 
> access the Enumerable versions under certain conditions. I originally wrote 
> the up as an issue, but was informed this would be the better venue. I'm 
> linking to the original issue on Github because the syntax highlighting is 
> nice. 
> > 
> > https://github.com/rails/rails/issues/9132 
>
> In the example in the issue, wouldn't this work nearly as well: 
>
> def incomplete_submissions 
>   submissions.to_a.count(&:incomplete?) 
> end 
>
> In short, if you want the Enumerable behavior, just ask for it... 
>
> --Matt Jones 
>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-core+unsubscr...@googlegroups.com.
To post to this group, send email to rubyonrails-core@googlegroups.com.
Visit this group at https://groups.google.com/group/rubyonrails-core.
For more options, visit https://groups.google.com/d/optout.

Reply via email to