こんにちは、hachi8833です。 先週弊社で行われたコードリーディング勉強会で、講師のmorimorihogeさんが終盤で教えてくれたIRBやpry向けのテクニックをご紹介します。勉強会本編も後日記事にいたしますのでご期待ください。 メソッドの定義元を調べる 任意のオブジェクトの#methodsメソッドを呼ぶと、以下の様にそのオブジェクトで使えるメソッド一覧のSymbol配列を取得できますが、そこで見つけたメソッドが実際にはどのクラスやモジュールで実装されているのかをその場で知りたいことがあります。 実は.method(:メソッド名).ownerで簡単に取得できます。Methodオブジェクトを取ってきて情報を参照しているだけです。 以上はRubyの場合ですが、RailsコンソールでももちろんOKです。 定義元は.ownerを付けなくてもわかる場合もありますが、以下のようにメッセージが長
RubyはModuleで組み込まれたメソッドや、method_missingを利用した「ゴーストメソッド」など、自分の見ているメソッドがそのクラス以外のどこで定義されているのか、分かりにくいケースがよくあります。 特にJavaやC#から移ってきた僕のようなプログラマは、「メソッド = どこかのクラスで定義されているもの」という印象が強いので、「持ち主がよく分からないメソッド」の存在はデバッグ等で苦労させられます。 こういったケースでは、Kernel#methodとMethod#source_locationを組み合わせることで、メソッドの定義場所を見つけることができます。 たとえば、rails consoleでblank?メソッドの定義場所を見つけたい場合は、こんな感じです。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? All in Slack いまさらですが Slack を使い始めました。チャット用途ではなく、RSS 読むためだけに Feedly 開くの面倒だから何とかしたいというのと、モヒカン Slack に入ったらなかなかよかったためです。 究極のIT系最新技術情報収集用Slackチーム公開 - モヒカンSlack - - Qiita そういえば Twitter も全然開かないし会社の SNS も見なきゃいけないし Instagram は見てるヒマないしたまーに Skype 届くし GoogleCalendar の通知は毎日見逃すし、気づけばスマ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く