タグ

2018年3月1日のブックマーク (1件)

  • Rubyでメソッドの定義場所を見つける方法 - Qiita

    RubyはModuleで組み込まれたメソッドや、method_missingを利用した「ゴーストメソッド」など、自分の見ているメソッドがそのクラス以外のどこで定義されているのか、分かりにくいケースがよくあります。 特にJavaやC#から移ってきた僕のようなプログラマは、「メソッド = どこかのクラスで定義されているもの」という印象が強いので、「持ち主がよく分からないメソッド」の存在はデバッグ等で苦労させられます。 こういったケースでは、Kernel#methodとMethod#source_locationを組み合わせることで、メソッドの定義場所を見つけることができます。 たとえば、rails consoleでblank?メソッドの定義場所を見つけたい場合は、こんな感じです。 $ rails c > 'x'.method(:blank?).source_location => ["/Use

    Rubyでメソッドの定義場所を見つける方法 - Qiita
    machupicchubeta
    machupicchubeta 2018/03/01
    “source_location”