I'd like to count truthy objects in an array. Since I can pass a block to count, the most idiomatic way I found was this:
[1, nil, 'foo', false, true].count { |i| i }
#=> 3
But I was wondering if there was a better way, especially using the syntax count(&:something), because passing a full block here looks like overkill to me.
AFAIK, there is no truthy? method in Ruby, so I couldn't find how to achieve this.
falseys[1, nil, 'foo', false, true].count(&:!)and subtract it from original array’s size :)