与 Thor 一起使用 IRB(即调用“调试器”)吗?

发布于 2024-11-19 15:55:48 字数 582 浏览 9 评论 0原文

我试图让 Thor 在代码中到达“调试器”时触发 IRB 提示(如 Rails 等)。虽然我可以触发调试器,但是如何让 IRB 在触发调试器时自动启动?

目前,我在 .thor 文件中执行以下操作:

require 'ruby-debug'

desc 'irb', 'Load IRB console for this app.'
def irb
  puts 'Starting IRB...'
  debugger
end

这会导致调试器被触发,但 IRB 必须通过在提示符下键入“irb”来显式启动:

$ thor app
Starting IRB...
(rdb:1) irb
ruby-1.9.2-p180 :001 > puts 'hello'
hello
=> nil
ruby-1.9.2-p180 :002 > exit 
(rdb:1) exit
Really quit? (y/n) y

How do I get IRB to trigger instant so I don't need输入“irb”和一个额外的“exit”?

谢谢!

I'm trying to get Thor to trigger an IRB prompt when 'debugger' is reached in the code (like Rails, etc). Although I can trigger debugger, how do I get IRB to start automatically when debugger is triggered?

Currently, I do the following in the .thor file:

require 'ruby-debug'

desc 'irb', 'Load IRB console for this app.'
def irb
  puts 'Starting IRB...'
  debugger
end

This results in the debugger being triggered, but IRB must be explicitly started by typing 'irb' at the prompt:

$ thor app
Starting IRB...
(rdb:1) irb
ruby-1.9.2-p180 :001 > puts 'hello'
hello
=> nil
ruby-1.9.2-p180 :002 > exit 
(rdb:1) exit
Really quit? (y/n) y

How do I get IRB to trigger instantly so I don't need to type 'irb' and an extra 'exit'?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

能否归途做我良人 2024-11-26 15:55:48

对于那些可能有同样问题的人,我确实找到了两个解决方案(请参阅 http:// /bashdb.sourceforge.net/ruby-debug.html#Autoirb):


选项 1:将“autoirb”设置为打开。 (我的偏好)

这很好,因为它似乎会自动包含您本地的 .irbrc。缺点是如果您想退出应用程序的执行,您仍然需要输入“exit”两次(一次退出 irb,第二次退出调试器)。

require 'ruby-debug'
::Debugger.settings[:autoirb] = 1

选项 2:将“autoeval”设置为打开。

这很好,因为它会自动评估调试器中的未知命令,并且只需要输入“exit”一次即可退出,因为从技术上讲,您仍在调试器控制台中(而不是在嵌套的 irb 会话中),并且您的语句只是被自动评估。缺点是您的 .irbrc 设置会被忽略。 Rails 使用此方法(更多信息位于:http ://www.catapult-creative.com/2009/08/12/make-ruby-debug-work-better/)。

require 'ruby-debug'
::Debugger.settings[:autoeval] = 1

For those of you who might have the same question, I did locate two solutions (see http://bashdb.sourceforge.net/ruby-debug.html#Autoirb):


OPTION 1: Set 'autoirb' to on. (my preference)

This is nice because it appears to automatically include your local .irbrc. Downside is you still have to type 'exit' twice if you want to quit the execution of the app (once to exit irb, second to exit debugger).

require 'ruby-debug'
::Debugger.settings[:autoirb] = 1

OPTION 2: Set 'autoeval' to on.

This is nice because it auto-evalutes unknown commands in the debugger and only requires entering 'exit' once to quit, since you are technically still in the debugger console (and not in a nested irb session), and your statements are simply being auto-evaluated. The downside is that your .irbrc settings are ignored. Rails uses this method (more info at: http://www.catapult-creative.com/2009/08/12/make-ruby-debug-work-better/).

require 'ruby-debug'
::Debugger.settings[:autoeval] = 1
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文