Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】UnboundMethod::source_location()メソッドの使い方

source_locationメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

source_locationメソッドは、UnboundMethodオブジェクトに対して、そのメソッドがどこで定義されたかを示す情報を提供するメソッドです。UnboundMethodとは、特定のオブジェクトに紐付けられていない、クラスレベルでのメソッドの定義そのものを表すオブジェクトのことです。このsource_locationメソッドを呼び出すと、メソッドが定義されているファイルパスと、そのファイル内での行番号を格納した2要素の配列(例えば、["/path/to/your_file.rb", 10]のような形式)が返されます。これにより、コード内の特定のメソッドがどのファイルで何行目に記述されているかを正確に把握することができます。

もし、対象のメソッドがRubyのC言語部分で実装されている場合や、プログラム実行中に動的に生成されて定義元が特定できない場合などには、このメソッドはnilを返します。この機能は、プログラムの動作をデバッグする際や、既存のコードベースを解析してメソッドの内部動作や起源を理解する際に非常に有用です。システムエンジニアを目指す方々にとって、複雑なシステムの中でメソッドの定義元を迅速に追跡できることは、問題解決やシステムの全体像を把握するための重要な手がかりとなります。

構文(syntax)

1class MyClass
2  def my_method
3    # このメソッドの定義場所が返されます。
4  end
5end
6
7unbound_method_object = MyClass.instance_method(:my_method)
8unbound_method_object.source_location

引数(parameters)

引数なし

引数はありません

戻り値(return)

[String, Integer] or nil

メソッドが定義されているソースファイルのパスと行番号を配列で返します。メソッドが組み込みメソッドやインタプリタ内で定義されたものである場合は、nilを返します。

関連コンテンツ