Ruby 分享:如何阅读 ruby 项目 源码

linjunhalida · 2014年01月03日 · 最后由 ruby_cxz 回复于 2014年02月09日 · 6661 次阅读

最近阅读 ruby 源码非常顺手,这里整理一下心得,分享给大家,欢迎大家也同样分享~

http://blog.linjunhalida.com/blog/how-to-read-ruby-source-code/

如果觉得还有什么阅读源码相关的问题,欢迎也提出来,我更新对应的内容~

求再来一个如何 debug(包括第三方 Gem)!

这里似乎有点误导人,是 ruby 语言本身的源代码还是用 ruby 写的第三方库?

这题目太误导人了!

话说,我一直想问,你们都用什么工具读源码?"转到定义"怎么办

#6 楼 @levi0214 代码不多的话直接全文字符串查找,IDE 有时候不太准。

#7 楼 @rasefon find & grep 是我找 ruby 方法的唯一武器。。 emacs 不知道怎么配。。

作为初学者,正在看 sinatra 的代码-,-。发现好多语法好高级,都得查,进度好慢。囧。

@levi0214 @rasefon RubyMine 的转到定义很好很强大,大部分时间都很准确

把下面一段代码添加到 .irbrc 或者 .pryrc 文件中

def source_for(object, method_sym)
  if object.respond_to?(method_sym, true)
    method = object.method(method_sym)
  elsif object.is_a?(Module)
    method = object.instance_method(method_sym)
  end
  location = method.source_location
  `mvim #{location[0]} +#{location[1]}` if location
rescue
  nil
end

用 Ruby 的反射找出方法定义的源代码的位置,再用 mvim 打开

随便找了一个 Sinatra 的项目用 irb 或者 pry load,直接用 source_for 很快就能找到方法定义了

#12 楼 @zhufenggood pry 已经内建了: edit Sinatra.new.get

#11 楼 @jasl rubymine 很贵啊!

乍一看还以为 C#

需要 登录 后方可回复, 如果你还没有账号请 注册新账号