2008-05-18 06:22:34 +02:00
|
|
|
unless :to_proc.respond_to?(:to_proc)
|
2007-12-21 08:48:59 +01:00
|
|
|
class Symbol
|
|
|
|
# Turns the symbol into a simple proc, which is especially useful for enumerations. Examples:
|
|
|
|
#
|
|
|
|
# # The same as people.collect { |p| p.name }
|
|
|
|
# people.collect(&:name)
|
|
|
|
#
|
|
|
|
# # The same as people.select { |p| p.manager? }.collect { |p| p.salary }
|
|
|
|
# people.select(&:manager?).collect(&:salary)
|
|
|
|
def to_proc
|
|
|
|
Proc.new { |*args| args.shift.__send__(self, *args) }
|
|
|
|
end
|
2007-01-22 14:43:50 +01:00
|
|
|
end
|
|
|
|
end
|