タグ

codereadingとmethodに関するmanabouのブックマーク (1)

  • メソッド定義場所を探してソースコードを読んでみよう - Qiita

    のように、基クラスを拡張できてしまいます。 これは開発者誰もがクラスにメソッド定義が行えて強力な一方、 ソースを見て動作を知りたいと思った時に、どこでメソッド定義されているのか探すのが大変です。 そこでRubyでは、Method#owner(), Method#source_location()という定義情報にアクセス出来るメソッドが用意されています。 それでは冒頭の「3.days」がどこで定義されているか調べてみましょう。 m = 3.method(:days) # Methodオブジェクトを取得できる m.owner # どのクラスで定義されているか取得する => Numeric m.source_location # 定義場所と行番号を返却 => ["/my/preoj/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.8/lib/ac

    メソッド定義場所を探してソースコードを読んでみよう - Qiita
  • 1