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

instance method Proc#source_range

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

self に対応する Ruby::SourceRange を返します。

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

返される Ruby::SourceRange には、ソースパス、(可能なら)絶対パス、開始・終了の行番号とバイト単位の桁番号が含まれます。ブロックから作られた Proc の範囲は { または do から始まります。

# /path/to/target.rb を実行
pr = proc { 42 }
range = pr.source_range
p range.path         # => "/path/to/target.rb"
p range.start_line   # => 2
p range.start_column # => 10

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

[SEE_ALSO] Proc#source_location, Proc#syntax_tree