浏览Ruby源代码

sup*_*ing 5 ruby ruby-on-rails

我的主要目标是能够完全理解我正在使用的库/宝石.我尝试在Github上从头到尾阅读源代码,但这真的很难.

我认为一个更有趣,更温和的垫脚只是在我使用它时阅读每个库/ gem方法的源代码.

例如,我想知道redirect_toRuby on Rails中的方法是如何工作的:

  1. 如何查找redirect_to方法的源代码?
    • 我知道在pry中我可以做类似的事情show-method method,但是我如何为Rails框架中的方法执行此操作?
  2. 您对如何更好地了解宝石及其API有什么建议吗?只是阅读源代码似乎很难,特别是对于框架.

谢谢!

Dav*_*uth 4

RubyMine IDE 满足了我的这个需求。它具有以下功能,大大降低了阅读 gem 源码的门槛:

  • Gems 是项目树的一部分(在外部库伪目录中),因此您可以像编辑自己的代码一样导航甚至编辑它们。

  • 单个键命令(Mac 上的命令-B)从标识符(模块/类名称、方法名称等)导航到其声明,或者在有多个声明时调出一个列表以供选择。它适用于您的代码和 gem 代码。

  • 另一个命令(Mac 上的 option-command-O)允许您输入标识符名称以导航到上述位置。如果您输入的内容在代码中找不到,它会自动包含库代码;如果您输入的内容在您的代码中找到,您可以再次按下按键以包含 gem 代码。

  • 调试器不断显示您正在执行的代码。您可以设置断点,而无需在所需位置编辑代码。您可以检查实际正在执行的堆栈帧之上的任何堆栈帧。所有这些功能都同样适用于您的代码和 gem 代码。

一般来说,RubyMine 的所有功能都可以与 gem 代码以及项目代码一起使用。

关于除了阅读源代码之外理解 gem 的方法:大多数 gem 都记录在它们的 README 中(我总是在 Github 上阅读)以及可能在 gem 根目录或 doc 目录中的其他文档文件。有些 gem(包括 Rails gem)有值得一读的 rdoc。但是,由于从 gem 的使用导航到其代码非常方便,因此我通常首先尝试,并在阅读实际代码之前阅读代码中的 rdoc(如果有)。RubyMine 还可以显示使用标识符的 rdoc(在 Mac 上按 F1),但我总是发现直接进入代码更容易。