如何将 Interactive Ruby 合并到我的开发过程中?

发布于 2024-07-06 10:59:11 字数 342 浏览 8 评论 0原文

我正在尝试找到一种更好的方法将 IRB 与我的正常 ruby​​ 开发集成。 目前我很少在我的代码中使用 IRB。 我只用它来验证语法或尝试一些小事情。

我知道我可以将自己的代码加载到 ruby​​ 中,

require 'mycode'

但这通常不符合我的编程风格。 有时我想要检查的变量超出范围或在循环内部。 有没有一种简单的方法可以启动我的脚本并冻结在 IRB 内的某个点? 我想我正在寻找一种更简单的方法来调试我的 ruby​​ 代码而不破坏我的 F5(编译)键。

也许更有经验的 ruby​​ 开发人员可以与我分享更精简的开发方法。

I am trying to find a better way to integrate IRB with my normal ruby devleopment. Currently I rarely use IRB with my code. I only use it to verify syntax or to try something small.

I know I can load my own code into ruby as a

require 'mycode'

but this usually doesn't mesh with my programming style. Sometimes the variables I want to examine are out of scope or inside of a loop. Is there an easy way to fire up my script and freeze at a certain point inside of IRB? I guess I'm looking for an easier way to debug my ruby code without breaking my F5(compile) key.

Maybe a more experienced ruby developer can share with me a more streamlined method of development.

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

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

发布评论

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

评论(5

时光倒影 2024-07-13 10:59:11

安装 ruby​​-debug gem。 当然,在您的应用程序中需要它(仅在开发/测试模式下)。 现在您可以在要停止执行的地方编写“调试器”。

一旦您的应用程序在断点处停止,您可以输入“help”来了解所有命令。 其中之一是“irb”。 它启动一个 IRB 会话,您可以在其中访问当前上下文中的所有方法。

我个人主要使用 p(打印)、eval、vi(实例变量)和 vl(本地变量)。 当然,n 代表下一个,c 代表继续。

不过,跳出给定块/方法的命令对我来说从来没有用过。 我从来没有调查过原因:-)

Install the ruby-debug gem. Of course, require it inside your app (only in development/test mode). Now you can write 'debugger' where you want to stop execution.

Once your app stop at your breakpoint, you can type 'help' to know about all commands. One of them is 'irb'. It starts an IRB session in which you have access to all methods in your current context.

I personally mostly use p (print), eval, v i (instance vars) and v l (local vars). Of course, n for next and c for continue.

The command to step out of a given block/method never worked for me though. I never investigated why :-)

秋叶绚丽 2024-07-13 10:59:11

我不经常直接使用 irb,因为我倾向于在 Rails 内部使用脚本/控制台,但我确实喜欢使用 ruby​​ 调试器(Ruby Debug gem)。 它基本上可以让您设置断点,然后逐行执行代码。

这是一个关于它的截屏视频,我实际上没有看过,但是快速搜索将其找到,它可能很有用:

http://brian.maybeyoureinsane.net/blog/2007/05/07/ruby-debug-basics-screencast/

I don't tend to use irb directly that frequently, as I tend to be inside rails and so use script/console a bunch, but I do like using the ruby debugger (Ruby Debug gem). It lets you set a breakpoint basically and then step through your code line by line.

Here's a screencast about it that I haven't actually watched, but a quick search pulled it up, and it could be useful:

http://brian.maybeyoureinsane.net/blog/2007/05/07/ruby-debug-basics-screencast/

疧_╮線 2024-07-13 10:59:11

对于 Eclipse 中的 Ruby 开发:现在有一个经过大幅改进的 RDT(Ruby 开发工具)版本。 要直接在 Eclipse 中安装,请单击“Help”>“Help” 软件更新> 查找并安装> 搜索新功能单选按钮 > 下一个> 新远程站点> 名称 = Ruby 且 URL = http://update.aptana.com/update/rdt/3.2 /

另一个 Ruby 插件是闪亮的新 Eclipse DLTK(动态语言工具包)。
DLTK 稳定版 1.0.M5 几天前刚刚发布。
这里有一些有用的安装技巧

For Ruby development in Eclipse: there's a much improved version of RDT (ruby development tools) available now. To install it directly in Eclipse, click Help > Software Updates > Find and Install > Search for new features radio button > next > new remote Site > Name = Ruby and URL = http://update.aptana.com/update/rdt/3.2/

Another Ruby plugin is the shiny new Eclipse DLTK (dynamic languages toolkit).
DLTK stable release 1.0.M5 just came out a few days ago.
Here are some useful installation tips.

蓝戈者 2024-07-13 10:59:11

我只是使用 rdebug 来调试我的任何 ruby​​ 或 RoR 代码。

I just use rdebug to debug any of my ruby or RoR code.

琉璃繁缕 2024-07-13 10:59:11

如果您愿意使用 IDE 进行调试,我知道 Eclipse (通过Ruby 开发工具)具有相对简单的界面。 如果您正在使用 Rails,那么有一个名为 RadRails 的特定构建的 Eclipse 也可能有所帮助(尽管我没有用过它来调试)

If you're willing to use an IDE for debugging, I know Eclipse (via the Ruby Development Tools) has a relatively straightforward interface. If you're doing rails then there's a specific build of eclipse called RadRails which may also help (though I haven't used it for debugging)

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