From 4d20de8a50d889a09e6f5642984775fe796ca943 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 2 Dec 2011 13:00:03 +0100 Subject: Added Enumerable#pluck to wrap the common pattern of collect(&:method) *DHH* --- activesupport/lib/active_support/core_ext/enumerable.rb | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'activesupport/lib/active_support') diff --git a/activesupport/lib/active_support/core_ext/enumerable.rb b/activesupport/lib/active_support/core_ext/enumerable.rb index 9343bb7106..d9856f2e84 100644 --- a/activesupport/lib/active_support/core_ext/enumerable.rb +++ b/activesupport/lib/active_support/core_ext/enumerable.rb @@ -63,6 +63,13 @@ module Enumerable end end + # Plucks the value of the passed method for each element and returns the result as an array. Example: + # + # people.pluck(:name) # => [ "David Heinemeier Hansson", "Jamie Heinemeier Hansson" ] + def pluck(method) + collect { |element| element.send(method) } + end + # Iterates over a collection, passing the current element *and* the # +memo+ to the block. Handy for building up hashes or # reducing collections down to one object. Examples: -- cgit v1.2.3