読者です 読者をやめる 読者になる 読者になる

Ruby の Symbol#to_proc に引数を渡す拡張

[1,2,16].map(&:to_s(16)) みたいにかきたいよねー』というやつ。

class Symbol
    def call *args, &block
        proc { |myself|
            myself.send self, *args, &block
        }
    end
end

p [1, 2, 16].map(&:to_s.(16))
# => ["1", "2", "10"]

#call を定義してこういう風に書くことはできるけどもさて。

[おまけ]

iolite を使用するとこういう風に書くことは出来ます。

require "iolite"

include Iolite::Placeholders

p [1, 2, 16].map(&arg1.to_s(16))
# => ["1", "2", "10"]

[元ネタ]

このあたり