首页 > 解决方案 > 尝试在自定义 pry 命令中运行 pry 命令

问题描述

我正在尝试自定义我的 Pry (使用 Pry 有一段时间了,但这是我第一次尝试创建命令。)我想创建一个自定义命令,它将从我的历史记录中获取最后 50 个项目我正在像这样构建它:

Pry::Commands.block_command "fifty", "List the last fifty inputs" do
  hist --tail=50 -a
end

一旦这在我的 .pryrc 文件中,它会显示我是否执行“帮助五十”,但如果我尝试运行该命令,我会得到以下信息:

NameError: undefined local variable or method `a' for #<#<Class:0x007f8a1ee49aa8>:0x007f8a1e873ed0>

我的猜测是命令在执行块内的范围存在一些问题,但我对 Pry 文档的搜索并没有给我任何关于如何继续的想法。其他不尝试复制 Pry cl 命令的命令,例如示例中的命令

Pry::Commands.block_command "hello", "Say hello to three people" do |x, y, z|
  output.puts "hello there #{x}, #{y}, and #{z}!"
end

工作得很好。任何输入表示赞赏。

标签: rubypry

解决方案


您缺少run运行其他pry命令所需的内容:

Pry::Commands.block_command 'fifty', 'List the last fifty inputs' do |x|
  run 'hist --tail=50 -a'
end

推荐阅读