【问题标题】:Configure help output in Pry在 Pry 中配置帮助输出
【发布时间】:2013-07-04 17:44:39
【问题描述】:

有没有办法自定义Pry中的帮助系统?

我想要的是显示来自我的custom commands 的描述。现在,当在 REPL 中输入 help 时,会打印所有 Pry 帮助文档。

例如:

当前帮助输出:

Help
  help               Show a list of commands or information about a specific command

Context
  cd                 Move into a new context (object or scope).
  find-method        Recursively search for a method within a Class/Module or the current namespace.
  ls                 Show the list of vars and methods in the current scope.

 etc...

我想要删除 Pry 帮助列表:

Commands
  my-custom-command  description
  my-custom-command2 description

etc...

【问题讨论】:

    标签: ruby pry


    【解决方案1】:

    “编辑帮助”将编辑磁盘上 lib/pry/ 上的命令。这不是一个非常便携的解决方案! :) Pry 有一个“命令集”的概念,即一组命令。默认命令集可以在 Pry.commands 中找到。命令集最酷的地方在于你可以删除命令,或者添加新命令:)

    CommandSet API 不是很好。你不能说 Pry.commands["help"] = other_command。不过,你可以这样说:

    # Solution 1 (add a Pry::ClassCommand).
    Pry.commands.delete "help"
    Pry.commands.add_command MyHelpCommand
    
    # Solution 2 (replaces Pry's help with a Pry::BlockCommand).
    Pry.commands.command "help" do
      output.puts "Helpin'"
    end
    

    这个 API 肯定需要一些工作。如果 #[]= 可以工作,那就太好了,但它需要一些工作 - 命令在创建时封装了它们的名称。该键需要重新分配为命令名称。如果您尝试混合和匹配不同的 pry 命令,您绝对应该查看 Pry::CommandSet。

    【讨论】:

    【解决方案2】:

    你很幸运,因为它只是 Ruby。

    继续输入edit help,它将打开 Pry 类进行编辑。修改吧!

    当然,欢迎您 fork 项目、进行更改、创建 gem 并将其安装到您的系统上。

    【讨论】:

    • 我在 gem 中使用 Pry 作为 REPL,并希望在我的 gem 加载之前对其进行配置。
    • 正确。修改 PRY,然后为修改后的 PRY 创建一个 gem。并在该 gem 中为您的 REPL 使用修改后的 PRY。几乎答案都描述了这样做。
    • 我想避免分叉 Pry 来做这件事。我猜没有办法开箱即用地配置 Pry。
    • 是的,有。编写一个使用 PRY 命名空间的 gem,需要你的 gem 来“猴子补丁”Pry。或者只需要您的库而不创建 gem。不管怎样,是的,你可以改变它,你可以配置它。但是您更改帮助系统的“配置”不是“配置选项”,而是功能。编写功能。
    猜你喜欢
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 2011-11-24
    • 2010-10-14
    相关资源
    最近更新 更多