Возможно ли получить доступ к методу 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])
), хотя я не смог взломать это.
У кого-нибудь есть идеи или примеры этого?