Как скрыть подглядывать?

Иногда, когда я открываю binding.pry сеанс в спецификации, он показывает мне слишком длинную область видимости в оболочке, как показано ниже, и занимает всю строку оболочки:

[3] pry(#<RSpec::ExampleGroups::Scope::AfterSeed::BehavesLikeAnExportableToExcelModel::WhenImportingFromSpreadsheet::AXlsxFile>)>

Невозможно использовать оболочку, когда уровень слишком глубокий, и эта информация о области действия становится бессмысленной. Как я могу скрыть эту область для чего-то вроде pry(#hidden_info>)> а еще есть методы и переменные из предыдущей области?

1 ответ

Подсказка pry может быть настроена различными способами. Значение подсказки может принимать любую произвольную форму. (предел - все, что вы можете сделать в Ruby)

Вы можете увидеть DEFAULT_PROMPT значения в rdocs:

[
 proc { |target_self, nest_level, pry|
   "[#{pry.input_array.size}] #{pry.config.prompt_name}(#{Pry.view_clip(target_self)})#{":#{nest_level}" unless nest_level.zero?}> "
 },

 proc { |target_self, nest_level, pry|
   "[#{pry.input_array.size}] #{pry.config.prompt_name}(#{Pry.view_clip(target_self)})#{":#{nest_level}" unless nest_level.zero?}* "
 }
]

В вашем случае вы, вероятно, хотели бы поместить следующее в ~/.pryrc и затем перезапустите любые сеансы pry:

Pry.config.prompt = [
 proc { |target_self, nest_level, pry|
   "[#{pry.input_array.size}] #{pry.config.prompt_name}#{":#{nest_level}" unless nest_level.zero?}> "
 },

 proc { |target_self, nest_level, pry|
   "[#{pry.input_array.size}] #{pry.config.prompt_name}#{":#{nest_level}" unless nest_level.zero?}* "
 }
]

Это удаляет Pry.view_clip(target_self) вызов, который будет обрезать класс из приглашения.

Здесь также есть примеры переполнения стека для настройки запроса pry.

Другие вопросы по тегам