1

Is there a way to customize the help system in Pry?

What I want is to display description from my custom commands. Right now all of the Pry help documentation is printed when help is entered in the REPL.

For example:

Current help output:

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...

What I would like is to remove the Pry help listings:

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

etc...
4

2 回答 2

2

“编辑帮助”将编辑磁盘上 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。

于 2013-09-21T18:21:48.420 回答
1

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

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

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

于 2013-07-04T18:26:15.063 回答