From: "tenderlovemaking (Aaron Patterson)" Date: 2013-08-08T17:28:12+09:00 Subject: [ruby-core:56452] [CommonRuby - Feature #8751] Add offsets to method#source_location Issue #8751 has been updated by tenderlovemaking (Aaron Patterson). Sorry, I should have added some usecases to this description. I would like this feature mainly to: 1. Extract source code from the source file so that I can: a) Show it on error pages b) Use ripper to parse and perform transformations on the methods c) Show the extracted source code to understand how a methods works in irb For example: >> x = SomeObject.new >> add_a_monkey_patch >> x.method(:some_method).source # => 'def some_method; ...; end' ---------------------------------------- Feature #8751: Add offsets to method#source_location https://bugs.ruby-lang.org/issues/8751#change-40991 Author: tenderlovemaking (Aaron Patterson) Status: Open Priority: Normal Assignee: Category: Target version: Hello, I would like to have byte offsets returned on the source_location for methods. For example: def foo(&b) b.source_location # => [file_name, line_number, start_byte, end_byte] end If we had the start and end byte for a method or proc, then we could find the source for methods and procs in each file. There are some cases (like with heredocuments) where the "end of the method" could be after the `end` keyword. But I think if we just have offsets for the start of `def` and the end of `end`, I think it would cover 99% of usecases. -- http://bugs.ruby-lang.org/