有时当我在一个规范中打开一个binding.pry
会话时,它会在shell中显示一个太长的范围,如下所示并占用所有shell行:
[3] pry(#<RSpec::ExampleGroups::Scope::AfterSeed::BehavesLikeAnExportableToExcelModel::WhenImportingFromSpreadsheet::AXlsxFile>)>
当级别太深时,无法使用shell,并且此范围信息变得毫无意义。如何将此范围隐藏到pry(#hidden_info>)>
之类的内容,并且仍然具有上一个范围中的方法和变量?
答案 0 :(得分:1)
pry提示符可以是configured in a variety of ways。提示值可以take any arbitrary form。 (限制是你在Ruby中可以做的任何事情)
您可以看到DEFAULT_PROMPT
值in the 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提示符的示例here on Stack Overflow。