草庐IT

pry-byebug

全部标签

ruby-on-rails - byebug 中的 Rails 多行调试或如何在单行中进行救援

有时我需要调试一些讨厌的异常,它的回溯被隐藏或截断,比如没有任何堆栈跟踪的ArgumentError。我习惯用byebug调试。问题是byebug解释器是一个REPL,所以不可能写多行代码。我正在尝试弄清楚如何进行内联救援并从那里打印回溯,即我想要一个内联的、与REPL兼容的版本begin....rescue=>eputse.backtrace.join("\n")end我试过了begin;my_crashing_method.call;rescueException=>e;putse.backtrace;end但是那一行引发了SyntaxError***SyntaxErrorExce

ruby - 阻止 Pry 将返回数组的每个值放在新行上?

我在Pry上观看了RubyConf2013演讲,我决定我应该好好尝试一下。我正在处理一些大型阵列。如果Pry能像IRB那样显示返回的数组,那么使用我的代码会更容易。奇怪的是,如果显示数组中的字符数很少,pry不会添加换行符,但当显示数组中的字符数超过某个阈值(在我的例子中似乎是26个字符)时,它会添加它们。有人知道如何让Pry停止这样做吗?IRB:main001(0)>a=[]#=>[]main002(0)>(1..100).each{|i|a1..100main003(0)>a=>[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,

ruby - 如何捕获 pry shell 命令的输出?

我正在使用pry,我想捕获并处理shell命令的输出。例如,如果我运行pry(main)>.ls我想将文件列表放入我可以在Ruby中使用的数组中。我该怎么做? 最佳答案 这是一个很老的问题,但我还是会回答的。从pry命令中获取数据有两种主要方法。第一个是如果命令将keep_retval选项设置为true,而shell命令不会。第二,是使用虚拟管道。在您的示例中,这可以通过以下方式完成:fizz=[].ls|{|listing|fizz=listing.split("\n")}#canalsobewrittenas.lsdo|list

ruby - 使用pry-rescue调试Cucumber步骤异常

我在我的Cucumber特性中添加了一个Around钩子(Hook),我希望它能在抛出异常时启动pry-rescue:Arounddo|scenario,block|Pry::rescuedoblock.callendend肯定会调用Around钩子(Hook),但不会挽救步骤中抛出的异常。例如。这一步:When(/^Iperformtheaction$/)doraise'hell'end...导致该功能失败,但不会让我在控制台窥探。Cucumber可以使用pry-rescue吗?我将其作为issue提出同样,我怀疑这可能是一个错误。更新:根据评论中AdamT的建议,我:将@allow

ruby-on-rails - pry 和 pry 的区别

prygem和pry-railsgem有什么区别(在实现方面)? 最佳答案 比较它们的实现没有意义,因为它们是两个不同的东西:一个IRb替代品和一个使前者成为Rails控制台的插件。prygem简单addsaninitializer将Rails控制台更改为Pry和addssomePrycommands特定于Rails。Pry-rails依赖于Pry,没有理由你不能在没有pry-rails的情况下将Pry与Rails一起使用,它只是让事情变得更容易。 关于ruby-on-rails-pry

ruby-on-rails - Unicorn & Pry in Rails

我无法在Unicorn上使用pry,因为我在一段时间后从提示中退出。这是一个快速概述:在Controller的自定义操作中,我有这个:defassignbinding.pryend到达这条路线没问题,我什至得到熟悉的pry提示,如下所示:8:defassign9:=>10:binding.pry11:end[1]pry(#)>大约一分钟后,我得到了这个,这让我退出了pry提示:[3]pry(#)>E,[2014-08-21T16:29:01.698472#4780]ERROR--:worker=0PID:4852timeout(61s>60s),killingE,[2014-08-21