[解決済み] あるメソッドのソースコードを動的に取得する方法と、そのメソッドがどのファイルに格納されているかを知るにはどうすればよいですか?
2022-11-23 03:15:02
質問
メソッドのソースコードをその場で取得できるのか、また、そのメソッドがどのファイルにあるのかを知りたいです。
のように
A.new.method(:a).SOURCE_CODE
A.new.method(:a).FILE
どのように解決するのですか?
使用方法
source_location
:
class A
def foo
end
end
file, line = A.instance_method(:foo).source_location
# or
file, line = A.new.method(:foo).source_location
puts "Method foo is defined in #{file}, line #{line}"
# => "Method foo is defined in temp.rb, line 2"
なお、組み込みのメソッドについては
source_location
は
nil
. C のソースコードをチェックしたい場合は(楽しんでください!)、適切な C ファイルを探し(多かれ少なかれクラスごとに整理されています)、そのファイルの中にある
rb_define_method
を見つける必要があります(ファイルの最後の方です)。
Ruby 1.8ではこのメソッドは存在しません。 このgem .
関連
-
[解決済み】Rubyで数値の配列の合計を出すには?
-
[解決済み] Rubyでランダムな文字列を生成する方法
-
[解決済み] 特定のキーがハッシュ内に存在するかどうかを確認する方法は?
-
[解決済み] Ruby on RailsでJSON出力を "きれい "にフォーマットする方法
-
[解決済み] Ruby/RailsでHashからキーを削除して残りのHashを取得する方法は?
-
[解決済み] イコール、エクル、==、==の違いは何ですか?
-
[解決済み] Rubyのクラス名を取得する方法を教えてください。
-
[解決済み】rakeタスクにコマンドライン引数を渡す方法
-
[解決済み】Railsの認証トークンを理解する
-
[解決済み】Rubyでファイルパスから拡張子なしのファイル名を取得する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Rubyの継承とミキシンの比較
-
[解決済み] Ruby: HTTP でファイルを multipart/form-data で投稿するには?
-
[解決済み] Ubuntu 14.04にRuby 2.1.4をインストールする方法
-
[解決済み] Sinatraがファイルを変更するたびに自動で再読み込みするようにするには?
-
[解決済み] Rubyでjavaのインターフェースに相当するものは何ですか?
-
[解決済み] Ruby: selfを拡張する
-
[解決済み] ルビー、!オペレーター(a/k/a ダブルバン)[重複]|日本郵船
-
[解決済み] Rubyでディレクトリを再帰的にリストアップするためのワンライナー?
-
[解決済み] Rubyで配列の最後の要素を取得するには?
-
[解決済み] バージョン要件におけるティルデグレータン(~>)の意味?