Symbol#to_proc
ちょっと古いけど http://wota.jp/ac/?date=20060309 より
active_support\core_ext\symbol.rb
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 { |obj, *args| obj.send(self, *args) } end end
おお。
ほかにも
module Enumerable def apply(name, *args) collect { |item| item.__send__(name, *args) } end end
という手もあるみたい。