2017-01-23 66 views
3

我使用Ruby 2.2.2,Pry和'pry-byebug'。该continue语句删除任何观看变量在pry-byebug如何在Ruby Pry中查看变量?

[1] pry(main)> watch foo 
Watching foo 
watch: foo => 42 
[2] pry(main)> watch 
Listing all watched expressions: 

1: foo => 42 

[3] pry(main)> continue 
[1] pry(main)> watch 
No watched expressions 

continue失去他们使得看着表情很值钱。如果我使用next并代替代码中的相同点,则观看的表达式仍然存在;这只是导致问题的continue。目前我甚至找不到watch声明中的任何文档,所以我不知道为什么会发生这种情况。更一般地说,我只是想在每个Pry提示符上打印一组表达式的值(或者,如果它们自上次打印以来发生了变化,可能会将其打印出来)。我该如何实现这在一个Ruby调试器?

+0

byebug整合到pry是相当黑客。他们并不经常一起玩。之前没有用过手表,所以唉这个不得了。也许只需发邮件给byebug的作者? – akuhn

回答

0

你应该可以编写一个插件,只需在评估后显示表达式即可,正好你想要什么。 Pry plugins

,你可以做一些简单的像

Pry.hooks.add_hook(:after_eval, "reporter") do |output, binding, pry| 
    $watch ||= [] 
    $watch.each {|block| block.call} 
end 

$watch = [-> { puts "hello"}] 

或沿着那线的东西,每一个新的评估之后将报告“你好”。 (但是,这是未经测试,但目前在手机上)

相关问题