Как я могу определить, на сколько уровней вниз ушел Прай?

Если я нахожусь в командной строке Bash и набираю bash, я могу определить, что нахожусь на 2-м уровне, набрав echo $SHLVL.

Предположим, я нахожусь в сеансе прослушивания и снова набираю pry. Как я могу определить, что я на 2-м уровне ниже? Как я могу определить уровень Pry? Ничто из перечисленного в (Pry.methods - Object.methods).sort, кажется, не имеет ничего полезного.

Это для тестирования некоторого кода для проекта, связанного с любопытством, где мне нужно определить уровень.


person iconoclast    schedule 08.07.2015    source источник


Ответы (1)


Если вы вызовете caller в рамках сеанса прослушивания внутри сеанса прослушивания, вы увидите список команд. Среди них вы сможете найти часть, соответствующую вложенному вызову pry. Найдите важную строку, связанную с каждым вызовом сеанса pry, и вы узнаете свой уровень. Насколько я проверил, вы должны найти два вхождения строки вроде:

 "/usr/local/lib/ruby/gems/2.2.0/gems/pry-0.10.1/lib/pry/repl.rb:67:in `repl'"

Посчитайте такие строки.

person sawa    schedule 08.07.2015