putsはどこで定義されているか
putsはどこで定義されているのでしょう。
表示してみればすぐ分かります。ObjectクラスがインクルードしているKernelモジュールで定義されているようです。
p method(:puts) #=> #<Method: Object(Kernel)#puts>
クラスで定義されているのか、モジュールで定義されているのかを区別するのはカッコでしょうか。
module Rubymod def m end end class Rubyco include Rubymod def c end end r = Rubyco.new p r.method(:m) #=> #<Method: Rubyco(Rubymod)#m> p r.method(:c) #=> #<Method: Rubyco#c>
疑問:そのメソッドがどのクラスで定義されているかを調べる直接的な方法はあるんだろうか?→無理矢理の解決方法