Цитирование https://stackoverflow.com/a/46966145/580346:
method = SomeConstant.method(:some_method_name)
file_path, line = method.source_location
# puts 10 lines start from the method define
IO.readlines(file_path)[line-1, 10]
Если вы хотите использовать это более удобно, вы можете открыть класс Method:
# ~/.irbrc
class Method
def source(limit=10)
file, line = source_location
if file && line
IO.readlines(file)[line-1,limit]
else
nil
end
end
end
Вставьте указанный выше код в ваш irb и затем позвоните YourConstant.method(:your_method).source