Можно ли получить доступ к методу Pry show-source
из файла Ruby? Если да, то как это делается?
Например, если бы у меня был этот файл:
# testing.rb
require 'pry'
def testing
puts 'hi'
end
puts show-source testing
И запустил ruby testing.rb
, мне нужен вывод:
Owner: testing.rb
Visibility: public
Number of lines: 3
def testing
puts 'hi'
end
Чтобы объяснить причину этого, у меня есть тест, заглушающий метод, хотя оригинал, похоже, вызывается время от времени, и я подумал, что было бы удобно вывести источник вызова, чтобы увидеть, откуда он исходит. Я знаю, что есть более простые способы сделать это, хотя начал с этой кроличьей норы, и мне интересно посмотреть, можно ли это сделать :)
Выполнение слегка головокружительного show-source show-source
показывает несколько методов в классе Pry::Command::ShowSource
, который наследуется от Pry::Command::ShowInfo
.
Pry::Command::ShowSource
показывает три метода: options
, process
и content_for
, хотя мне не удалось успешно вызвать ни один из них.
Мое лучшее предположение заключается в том, что метод content_for
справляется с этим, работая с объектом кода, назначенным из родительского класса (то есть Pry::CodeObject.lookup(obj_name, _pry_, :super => opts[:super])
), хотя мне не удалось взломать это.
У кого-нибудь есть идеи или примеры того, как это сделать?