• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >ruby > Ruby实现命令行中查看函数源码的方法

Ruby实现命令行中查看函数源码的方法

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了ruby 命令,ruby源码,ruby 多行注释,ruby,ruby碧玺等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

如果要查看 ActiveRecord 的 update_attribute 函数的源代码,一个比较常见的方法是直接在 Rails 源码中搜索 def update_attribute。博客 The Pragmatic Studio 介绍了一个更方便的技巧,在 Ruby 命令行中就能启动编辑器直接访问。

通过 Object#method 方法可以获得 update_attribute 方法的对象,而 Method#source_location 则返回这个方法定义的文件和位置。有了这个信息后,就能启动编辑器查看源代码了:

> method = User.first.method(:update_attribute)
  User Load (0.5ms)  SELECT `users`.* FROM `users` LIMIT 1
=> #<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]}`
=> ""
</div>

把这段代码封装成函数,加到 .pryrc 或者 .irbrc 中:
def source_for(object, method)
  location = object.method(method).source_location
  `subl #{location[0]}:#{location[1]}` if location && location[0] != '(eval)'
  location
end
</div>

如果要查看 User 的实例方法 update_attribute,可以直接在 pry / irb 中调用
source_for(User.first, :update_attribute)
</div>

如果要使用其他编辑器,得把 subl #{location[0]}:#{location[1]} 换成这个编辑器对应的命令行:
# TextMate
mate #{location[0]} -l #{location[1]}

# MacVim
mvim #{location[0]} +#{location[1]}

# Emacs
emacs {location[0]} +#{location[1]}
</div>

</div>

您可能想查找下面的文章:

  • Ruby中调用执行shell命令的6种方法
  • Ruby实现命令行中查看函数源码的方法
  • 深入剖析Ruby设计模式编程中对命令模式的相关使用
  • Ruby包管理器gem常用命令
  • 使用Ruby来编写访问Twitter的命令行应用程序的教程

相关文章

  • Ruby的运算符和语句优先级介绍
  • rails创建应用程序实例
  • 初步了解一下什么是ruby
  • Ruby中的Proc类及Proc的类方法Proc.new的使用解析
  • Ruby 字符串处理
  • Ruby的面向对象方式编程学习杂记
  • Ruby中gem包管理器的用法及用bundler来管理多版本的gem
  • 对优化Ruby on Rails性能的一些办法的探究
  • Ruby学习笔记二帮助生成Vim添加代码头的代码
  • Ruby的基本语法学习总结

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Rails脚手架使用实例
    • ruby 类常量 解析
    • 在Mac OS X下安装Ruby运行环境的详细步骤
    • Rails Routes中new、collection、member的区别浅析
    • 举例初步讲解Ruby中的正则表达式
    • Ruby中的return、break、next详解
    • 详解Ruby中正则表达式对字符串的匹配和替换操作
    • Ruby常用文件操作方法
    • Ruby中的方法(函数)学习总结
    • 初步讲解Ruby编程中的多线程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有