内容


用 Eclipse 轻松地进行 Ruby 开发

RDT 现在是 Aptana RadRails,但是仍然为 Ruby 开发人员提供功能强大的 IDE

Comments

Ruby Development Tools (RDT) 插件的名称及查找代码的位置已经发生变化,但是基本函数和许可条款在本质上保留不变。如果您不熟悉在 Eclipse 上开发 Ruby 应用程序的概念,请先阅读 Neal Ford 撰写的标题为 “使用 Eclipse 的 Ruby Development Tools 插件” 的文章,了解如何创建 Ruby 文件、如何自定义 Ruby 编辑器、如何设置调试器和从 Eclipse 运行 Ruby,以及从 Eclipse 开始测试。在本文中,我们将以 Ford 撰写的文章为基础上并查看:

  • 代码折叠— 可以针对类和方法启用折叠。
  • 大纲视图— 更详细地查看大纲视图,并了解如何使用该视图。
  • RI 视图— 从 RDT 视图使用 Ruby 的 Interactive 文档实用程序。
  • 任务标记— 在 Ruby 注释中为可配置关键字(如 TODO、FIXME)创建任务。
  • Ruby 浏览器— RDT 中的新特性,允许轻松地查看和浏览项目中可用的所有 Ruby 资源。
  • 编辑器改进— 自动完成方括号、圆括号和单/双引号;以及更优秀的代码帮助功能。

入门

RDT 现在称为 Aptana RadRails V1.0.3,可以在 Aptana.com 获得。要下载新版本或者更新 Eclipse 插件,请按照 Aptana 的 RadRails 说明 操作,Eclipse 用户应该十分熟悉这些说明。注意,如果以前没有把 Aptana 插件安装到 Eclipse 工作空间中,则应当按照 把 Aptana 插入现有 Eclipse 配置 的 Aptana 说明进行操作。在安装期间,还需要查阅 Aptana 的 RadRails 文档 了解特定于 OS 的问题的解决方法。

代码折叠

Eclipse 等几乎所有集成开发环境(Integrated Development Environment,IDE)都支持代码折叠的概念。代码折叠允许在处理源代码文件的某些内容时折叠其他部分的源代码。这将允许在一个窗口内管理大量的代码,不会顾此失彼。要在 RadRails 中启用或禁用代码折叠,只需确保位于 Ruby 透视图中并且选择 Window > Preferences。Preferences 窗口应当会弹出。向下滚动到左侧窗格,直至找到 Ruby 插件选项并用 Ruby > Editor > Folding 展开它。您应当会看到类似图 1 的内容。

图 1. Eclipse 窗口首选项允许自定义 Eclipse 透视图的界面外观和特性集
Eclipse 窗口首选项允许自定义 Eclipse 透视图的界面外观和特性集
Eclipse 窗口首选项允许自定义 Eclipse 透视图的界面外观和特性集

确保选中 Enable folding when opening a new editor 并选择 OK

在 “使用 Eclipse 的 Ruby Development Tools 插件” 中,我们创建了 Ruby 项目。如果尚未这样做,请创建一个项目。如果不希望参考该文章,清单 1 显示了相关代码。创建一个由清单 1 中所示代码组成的 Ruby 文件。还需要名为 hr.rb 的 Ruby 类。

清单 1. hr.rb
class Employee
  def initialize(name, salary, hire_year)
  @name = name
  @salary = salary
  @hire_year = hire_year
end

  def to_s
    "Name is #(@name), salary is #(@salary), " +
    "hire year is #(@hire_year)"
  end
  
  def raise_salary_by(perc)
    @salary += (@salary * 0.10)
  end
end

class Manager < Employee 
  def initialize(name, salary, hire_year, asst)
  super(name, salary, hire_year)
  @asst = asst
end

  def to_s
    super + ",\tAssistan info: #{@asst}"
  end
  
  def raise_salary_by(perc)
    perc += 2007 - @hire_year
    super(perc)
  end
end

在 Eclipse 中查看该类时,您应当会看到类似图 2 中所示的一连串减号。这些减号每一个都代表一个折叠点。选择减号可以折叠位于该点的代码。尝试选择 hr.rb 的 Employee 类中的所有方法的折叠点。

图 2. RDT 支持在 Ruby 中进行代码折叠
RDT 支持在 Ruby 中进行代码折叠
RDT 支持在 Ruby 中进行代码折叠

如果选择 Employee 类的所有方法的折叠点,则应当会看到类似图 3 所示的内容。

图 3. 折叠 Employee 类中的方法
折叠 Employee 类中的方法
折叠 Employee 类中的方法

正如您所见,使用代码折叠可以管理和控制工作环境,让您可以将精力主要放在感兴趣的代码上。如果返回到 Preferences 屏幕并查看 Ruby 代码折叠设置,则还会注意到您可以选择在最初打开文件时使用 RDT 折叠注释、方法或内部类。很多人发现这是一种快速查看类基本结构的方法,而不会被大量代码分心。不过,正如您将在下一节中看到的那样,还有更简单的方法可以获得代码概览。

大纲视图

在 “使用 Eclipse 的 Ruby Development Tools 插件” 中,提到了大纲视图是一种浏览 Ruby 源文件元素的方法。大纲视图还允许快速查看类、内部类、方法、变量等的树型表示。如果出于某种原因您没有在 Ruby 透视图中看到大纲视图,可以转到 Window > Show View > Outline 轻松地打开它,这将打开代码的可停靠式(dockable)大纲视图。对于 hr.rb 文件,在大纲完全展开时,您应当会看到类似图 4 中所示的内容。

图 4. 大纲视图展示了 hr.rb 文件的展开的树型表示
大纲视图展示了 hr.rb 文件的展开的树型表示

每一个符号和符号颜色都有或明显或不明显的特定含义。如果不是这样,您可以转到 Window > Preferences 并选择 Ruby > Appearance > Members Sort Order 轻松地找到这些含义的信息,这将提供大纲视图的线索,并让您调整和排列大纲视图符号的表示顺序。您应当会看到类似图 5 中所示的内容。

图 5. 成员排序顺序
成员排序顺序允许控制条目显示的可视性和顺序,并提供每一部分信息的含义的线索
成员排序顺序允许控制条目显示的可视性和顺序,并提供每一部分信息的含义的线索

代码大纲视图是帮助您了解如何构造代码的强大工具。但是当您忘记一个函数或者类的用途时该怎样做?在下一节中,将了解如何从 Eclipse 访问 Ruby 文档。

Ruby Interactive 视图

除非拥有大量内存,否则很容易忘记 Ruby 提供的一些类、方法和模块。Ruby 提供了文档以及 Ruby Interactive (RI),后者是一个交互式文档阅读器,让您可以快速地在 Ruby 文档中搜索和查找信息。要将 RI 与 Eclipse 结合使用,需要转到 Window > Preferences 并选择 Ruby > RI/rdoc 来配置 RadRails 插件以访问它。在这里,您将看到两个字段:RDoc path 和 Ri path。每个字段都期望获得 rdoc 和 ri 脚本的完整路径,如果 Ruby 安装位于驱动器 C 中,将分别是类似 C:\ruby\bin\rdoc 和 C:\ruby\bin\ri 的内容,如下所示(Mac OS X 和 Linux® 用户需要相应地调整路径)。输入正确路径并选择 OK

图 6. 设置 Ruby Interactive 文档阅读器
设置 Ruby Interactive 文档阅读器
设置 Ruby Interactive 文档阅读器

完成此操作后,您应当能够在 Eclipse Ruby 透视图的下半部分中看到 RI 选项卡。如果由于某种原因而没有看到该选项卡,只需转到 Window > Show View 并选择 RI,然后选择该选项卡并在输入字段中键入 Array。RI 将尝试查找匹配的搜索内容,也可以简单地滚动浏览可用选项并单击一个条目。对于 Array,您应当会看到类似图 7 所示的内容。

图 7. 在 RI 中查询 Array 类的示例输出
在 RI 中查询 Array 类的示例输出
在 RI 中查询 Array 类的示例输出

RI 视图非常有用,它允许您关注并且保持在开发环境内,而不必切换到 Web 浏览器或者其他应用程序中查看文档。可是有时,您会遇到当时刚好无法解决或没有时间处理的问题。开发人员时常在代码中留下注释,但是这些注释很容易遗忘。在下一小节中,我们将查看如何使用任务标记来标记要继续处理的条目。

任务标记

Eclipse 和 RadRails 插件中最有用的视图之一是 Tasks 视图。可以使用 Tasks 视图作为您自己或者基于项目的 to-do 列表,这将允许您用诸如 ToDo、FixMe、Optimize 之类的条目标记代码。您可以通过转到 Window > Preferences,然后转到 Ruby > Task > Tags 来配置您自己的任务标记。您应当会看到类似图 8 所示的内容。

图 8. 任务标记区域,使用该区域可以创建用于标记代码的新自定义标记
任务标记区域,使用该区域可以创建用于标记代码的新自定义标记
任务标记区域,使用该区域可以创建用于标记代码的新自定义标记

把标记添加到代码中就可以使用该标记,例如 #ToDo: Implement give_bonus method

尝试在 Employee 类的 hr.rb 文件中添加该注释并保存。现在在 Eclipse 视图的下半部分中选择 Task 窗格,或者如果由于某种原因您没有看到它,请转到 Window > Show View > Task,然后您应当会看到类似清单 2 所示的内容。

清单 2. 查看任务
Completed    Priority    Description    Resource    Path    Location    Creation Time
             TODO:  Implement give_bonus method  hr.rb  RubyTest   line 7  1173676801984

在团队开发环境中,能够定义您自己的任务标记非常有用。任务标记允许团队定义与标记相关的特定类型的任务,这些任务会被其他开发人员看到,即使不查看包含任务的具体代码。这将允许团队使用代码本身进行沟通,而不一定要使用电子邮件或者易于丢失的其他沟通方式。在下一小节中,我们将查看另一个透视图,该透视图允许快速浏览项目和查找信息。

Ruby 浏览器

此发行版的 RadRails 插件有许多新特性,包括 Ruby Browsing 视图。要获得此视图,只需转到 Window > Open Perspective > Ruby Browsing,您应当会看到类似图 9 所示的内容。

该透视图包含 Ruby 元素的多个视图。该项目将显示工作空间中的所有项目。在 Types 视图中,您将看到项目中的所有类和类型,而在 Members 视图中,您将看到从 Types 视图中选择的类的具体元素。双击条目将使 RadRails 插件打开与该元素相关的文件并将焦点停留在该元素上。

图 9. Ruby 浏览视图示例
Ruby 浏览视图示例
Ruby 浏览视图示例

快速浏览 Ruby 资源是另一种提高生产力的方法。在下一小节中,我们将查看 RadRails 插件中有助于 Ruby 开发的其他新增特性。

其他新增特性

Aptana RadRails 插件添加了对上一版插件的几项增强功能,包括代码完成。例如,在 hr.rb 文件中的任意位置键入 E,然后按 Ctrl+Space 组合键,然后 RadRails 插件代码完成功能将弹出一个类、模块、全局变量、方法和变量的列表。最新版本的 RDT 还添加了新内容,例如更明显地高亮显示全局变量以及实例/类变量、启用和禁用自动关闭(如字符串)的功能、JRuby 支持、SQL 编辑器、更优秀的调试、方括号和圆括号以及其他内容。Aptana 的 RadRails Pro 版本甚至添加了更多功能,包括内置在 IDE 中的新 Ruby 分析程序支持。要了解 RadRails 插件新增功能的更多信息,请参阅 V1.0.2 变更记录,这是撰写本文时的当前版本。

通过对 Aptana RadRails 进行重大改进,它真正显示出自己的强大威力:开发 Ruby 应用程序的重要工具。结合了其他 Eclipse 插件的 RadRails 可以提供一流的 IDE,其特性可以与几乎所有其他商业产品相媲美。

结束语

本文大概介绍了 Aptana RadRails 中的一些附加功能和改进。正如您所见,RadRails 插件为 Ruby 开发人员提供了一个功能强大的 IDE。然而更妙的是,Eclipse 不但提供了可轻松使用 Ruby 的工具,并且该工具还可以使用其他语言。Eclipse 提供了一个普遍且通用的开发平台,使用该平台可以提高效率,您只需关注语言本身,而无需在每次改变语言时学习新的 IDE。


下载资源


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Open source
ArticleID=338451
ArticleTitle=用 Eclipse 轻松地进行 Ruby 开发
publish-date=09162008