Ruby 4.1 リファレンスマニュアル

instance method Method#source_range

source_range -> Ruby::SourceRange | nilRuby 4.1 から[permalink][rdoc][edit]

このメソッドに対応する Ruby::SourceRange を返します。

メソッドが Ruby で定義されていない(C で実装されている)場合や、ソースパスを持たない場合は nil を返します。

返される Ruby::SourceRange には、ソースパス、(可能なら)絶対パス、開始・終了の行番号とバイト単位の桁番号が含まれます。

# ------- /tmp/foo.rb ---------
class Foo
  def foo; end
end
# ----- end of /tmp/foo.rb ----

require '/tmp/foo'

range = Foo.new.method(:foo).source_range
p range.path          # => "/tmp/foo.rb"
p range.absolute_path # => "/tmp/foo.rb"
p range.start_line    # => 2

p method(:puts).source_range # => nil

[SEE_ALSO] Method#source_location, Method#syntax_tree