我正在尝试对Pry进行一些自定义(使用Pry已有一段时间,但这是我第一次尝试创建命令。)我想创建一个将捕获最后五十个项目的自定义命令从我的历史来看,我正在像这样构建它:
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
工作正常。任何输入表示赞赏。
答案 0 :(得分:2)
您缺少运行其他pry
命令所需的run
:
Pry::Commands.block_command 'fifty', 'List the last fifty inputs' do |x|
run 'hist --tail=50 -a'
end