使用Aptana Studio运行Ruby程序的问题

时间:2011-07-21 20:56:23

标签: ruby aptana

以下请求为based upon an earlier version posted on the Aptana Tender site,但未收到回复 - 可能是因为Aptana招标网站现已deprecated in favour of StackOverflow

我正在使用Eclipse 3.6.2.r362_v20110210和Aptana Studio插件版本3.0.3.201107141410(我相信所有这些都是最新的,我相信)Mac OS X 10.6.8 Snow Leopard在Macbook上。

我创建了一个Ruby项目,然后在其中创建了一个名为“item.rb”的文件,我写了一些Ruby代码。

该文件非常短:它定义了一个“Item”类,其初始化方法要求用户输入一个值(使用“puts”后跟“gets.chomp”)和一个返回值的get方法,它还包含两行:一行用于创建新Item,另一行用于在新创建的Item上调用该方法。

当我从终端运行“ruby item.rb”时,它按预期工作:它询问用户一个值,并返回该值。没有错误/警告。

现在,我不想每次要执行文件时都使用终端,但是我无法以任何其他方式运行它。

以下是重现的步骤:

  • 在主Eclipse菜单中,转到Window> Open Perspective>其他
  • 在结果对话框中,单击“Ruby”并单击“确定”。
  • 在“脚本资源管理器”视图中,单击包含我要运行的文件的项目名称旁边的三角形,以便显示项目的内容。
  • 在“脚本资源管理器”视图中,双击要运行的文件的名称(item.rb)。
  • 这会导致item.rb在编辑器视图中打开,并为该视图提供焦点(即包含item.rb的编辑器视图具有蓝色而不是灰色边框,并且视图中有一个活动光标)。 / LI>
  • 单击Eclipse工具栏上的“运行”按钮(看起来像绿色“播放”)按钮。
  • 第一个问题:弹出一个“Run as ...”对话框(我不知道为什么)要我“选择一种方法来运行'item.rb'”。它给了我两个选择(再次,我不知道为什么):“Android应用程序”,“Ruby应用程序”。
    • 预期行为:因为item.rb是以“.rb”结尾且仅包含有效Ruby代码的文件,所以Eclipse / Aptana默认情况下应该将其作为Ruby应用程序运行。
  • 点击“Ruby Application”,然后点击“确定”。
  • 第二个问题:对话框消失了,但没有其他事情发生。
    • 预期行为:控制台视图应该获得焦点,并且应该执行item.rb,结果显示在控制台视图的文本区域中。
  • 到此为止,放弃是合理的。但是程序员不合理地执着,对吧?所以:点击Console选项卡。
  • Console视图的标题是“item.rb [Ruby Application] / usr / bin / ruby​​”,下面是一个空白的textarea,只包含一个闪烁的光标。
  • 按< Return / Enter>键入Macbook的键盘一两次。
  • 第三个问题:控制台视图的textarea突然更新了item.rb的输出,但奇怪的是,它并没有停在gets.chomp,它只是表示用户在该阶段输入了空响应(即好像用户只需按下键盘上的< Return / Enter>键,然后继续操作直到整个程序执行完毕。然后,Console视图的标题将更改为“< terminated> item.rb [Ruby Application] / usr / bin / ruby​​”。
    • 预期行为:item.rb应该在Console视图中执行,就像在终端中一样。

请你帮我解决这三个问题?

非常感谢。

1 个答案:

答案 0 :(得分:2)

听起来你安装了旧版本的Aptana,RDT,RadRails或DLTK Ruby,因为Aptana Studio 3.x中没有“Ruby”透视图。

您应该能够在Project Explorer,App Explorer或该文件的打开编辑器中右键单击该文件,然后选择Run As> Ruby Application。

理想情况下,您可以删除任何旧的ruby插件安装,以避免在执行此操作之前发生某种冲突。然后它应该按预期启动文件。

你正在谈论的输入/返回行为听起来像程序没有刷新STDERR / STDOUT并且按Enter键正在进入输入(因此,它正在缓冲您应该看到的输出形成提示,然后你点击Enter / Return并将其作为输入,因此它在获取调用后继续)。如果打印到STDOUT的内容未显示,您可以尝试通过将$stdout.sync = true添加到脚本顶部来强制自动刷新。 Studio 3.x应该在通过它启动的程序中为您静默设置。如果没有,那么你应该提交一个错误:http://jira.appcelerator.org/secure/CreateIssue!default.jspa