Ruby实现命令行中查看函数源码的方法
如果要查看ActiveRecord的update_attribute函数的源代码,一个比较常见的方法是直接在Rails源码中搜索defupdate_attribute。博客ThePragmaticStudio介绍了一个更方便的技巧,在Ruby命令行中就能启动编辑器直接访问。
通过Object#method方法可以获得update_attribute方法的对象,而Method#source_location则返回这个方法定义的文件和位置。有了这个信息后,就能启动编辑器查看源代码了:
>method=User.first.method(:update_attribute) UserLoad(0.5ms) SELECT`users`.*FROM`users`LIMIT1 =>#<Method:User(ActiveRecord::Persistence)#update_attribute>
>location=method.source_location =>["/Users/wyx/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.2.11/lib/active_record/persistence.rb", 177]
>`subl#{location[0]}:#{location[1]}` =>""