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

instance method UnboundMethod#source_range

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

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

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

Method#unbind で得られた UnboundMethod は、元の Method と同じ範囲を返します。

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

require '/tmp/foo'

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

p Time.instance_method(:zone).source_range # => nil

[SEE_ALSO] UnboundMethod#source_location, Method#source_range