【问题标题】:How to hide pry scope?如何隐藏撬动范围?
【发布时间】:2017-11-09 03:03:30
【问题描述】:

有时当我在规范中打开 binding.pry 会话时,它会显示 shell 中的范围过长,如下所示,并占用所有 shell 行:

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

当层级太深时,使用 shell 变得不可能,并且此范围信息变得毫无意义。我怎样才能将此范围隐藏到 pry(#hidden_info&gt;)&gt; 之类的东西中,并且仍然拥有前一个范围中的方法和变量?

【问题讨论】:

    标签: ruby-on-rails pry


    【解决方案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) 调用,该调用将从提示中剪切类。

    还有一些示例here on Stack Overflow 用于配置撬提示。

    【讨论】:

    • 成功了,感谢并祝贺您提供了精彩而有条理的解释
    猜你喜欢
    • 2019-09-08
    • 2012-09-02
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多