如何将Interactive Ruby合并到我的开发过程中?
题
我正在努力寻找一种更好的方法来将IRB与我正常的ruby开发相结合。目前我很少在我的代码中使用IRB。我只用它来验证语法或尝试小的东西。
我知道我可以将自己的代码加载到ruby中作为
require 'mycode'
但这通常不符合我的编程风格。有时我想要检查的变量超出范围或在循环内部。是否有一种简单的方法来启动我的脚本并冻结在IRB内的某个点?我想我正在寻找一种更简单的方法来调试我的ruby代码,而不会破坏我的F5(编译)密钥。
也许更有经验的ruby开发人员可以与我分享更简化的开发方法。
解决方案
安装ruby-debug gem。当然,在你的应用程序中需要它(仅在开发/测试模式下)。现在,您可以在需要停止执行的位置编写“调试器”。
一旦你的应用停在你的断点处,你可以输入'help'来了解所有命令。其中一个是'irb'。它启动一个IRB会话,您可以在其中访问当前上下文中的所有方法。
我个人主要使用p(打印),eval,v i(实例变量)和v l(本地变量)。当然,n代表next,c代表继续。
走出给定的块/方法的命令对我来说从来没有用过。我从未调查过为什么: - )
其他提示
我不倾向于直接使用irb,因为我倾向于在rails中,所以使用脚本/控制台一堆,但我喜欢使用ruby调试器(Ruby Debug gem)。它允许您基本设置断点,然后逐行逐步执行代码。
这是一个关于它的截屏视频,我还没有真正观看,但快速搜索将其拉出来,它可能很有用:
http://brian.maybeyoureinsane。净/博客/ 2007/05/07 /红宝石调试基础知识 - 截屏/
对于Eclipse中的Ruby开发:现在可以使用RDT(ruby开发工具)的大大改进版本。要直接在Eclipse中安装它,请单击帮助>软件更新>查找并安装>搜索新功能单选按钮>下一个>新远程站点> Name = Ruby和URL = http://update.aptana.com/update/rdt/3.2 /
另一个Ruby插件是闪亮的新Eclipse DLTK(动态语言工具包)。 几天前, DLTK稳定版1.0.M5 刚刚问世。 以下是一些有用的安装提示。
我只是使用rdebug来调试我的任何ruby或RoR代码。