CodeSchoolチュートリアルで次のコードに出くわしました:
class MethodLogger
def log_method((klass,method_name)
klass.class_eval do
alias_method "#{method_name}_original" method_name
define_method method_name do
puts "#{Time.now}: Called #{method_name}"
send "#{method_name}_original"
end
end
end
end
このコードの「send」メソッドの受信者はどうすればわかりますか? ここで、チュートリアルでは、「klass」で表されるクラスが「send」メソッドのレシーバーになると述べています。このようなコードの場合:
class Klass
end
k = Klass.new
k.send :hello,
k が send の受信者であり、 main が送信者であることは明らかです。しかし、最初のコード サンプルでは、どうすれば受信者を推測できますか?