タグ

ブックマーク / zucay.hatenadiary.org (1)

  • 【Ruby】どこでメソッド定義されているかを調べる - ふわふわRuby on Rails

    Railsをはじめて触ったとき 3.daysのように書けてしまうので驚いた方も多いのではないでしょうか。 Rubyでは、自分のソースコードの好きなところで class Numeric # Numericクラスにfoobarメソッドを追加する def foobar p 'foobar' end end 3.foobar => "foobar" のように、基クラスを拡張できてしまいますので、どこでメソッド定義されているのか探すのが大変です。 そこでRubyでは、Method#owner(), Method#source_location()という定義情報にアクセス出来るメソッドが用意されています。 それでは「3.days」がどこで定義されているか調べてみましょう。 m = 3.method(:days) # Methodオブジェクトが返却される m.owner # 定義されているクラス =>

    【Ruby】どこでメソッド定義されているかを調べる - ふわふわRuby on Rails
  • 1