idea查看ruby代码_Ruby实现命令行中查看函数源码的方法
如果要查看 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
=> #
> 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]}`
=> ""
把这段代码封装成函数,加到 .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
如果要查看 User 的实例方法 update_attribute,可以直接在 pry / irb 中调用
source_for(User.first, :update_attribute)
如果要使用其他编辑器,得把 subl #{location[0]}:#{location[1]} 换成这个编辑器对应的命令行:
# TextMate
mate #{location[0]} -l #{location[1]}
# MacVim
mvim #{location[0]} +#{location[1]}
# Emacs
emacs {location[0]} +#{location[1]}
idea查看ruby代码_Ruby实现命令行中查看函数源码的方法相关推荐
- windows在命令行中查看当前路径
windows在命令行中查看当前路径 文章目录: 一.Linux命令行中查看当前路径 二.windows命令行中查看当前路径 一.Linux命令行中查看当前路径 命令:pwd mosheng@ms-s ...
- 在命令行中查看apk的签名信息
在命令行中查看apk的签名信息,命令如下: keytool -list -printcert -jarfile app.apk 会在命令行打印出类似如下的信息: 签名者 #1: 签名: 所有者: CN ...
- 60行Shell代码实现在命令行中优雅地听歌
本文也发在了我的新个人博客上了,可以点击下面的链接获取更好的阅读体验: 60行Shell代码实现在命令行中优雅地听歌 0. 起因 起因就是对探索新歌失去了兴趣,并且觉得各种音乐播放软件都不怎么好用,而 ...
- 几种在shell命令行中过滤adb logcat输出的方法
几种在shell命令行中过滤adb logcat输出的方法 分类标签: LogCat ADB 我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流 ...
- 在Linux系统的命令行中为MySQL创建用户的方法
这篇文章主要介绍了在Linux系统的命令行中为MySQL创建用户的方法,包括对所建用户的权限管理,需要的朋友可以参考下 要访问一个MySQL服务器,你需要使用一个用户帐号登录其中方可进行.每个MySQ ...
- linux中可以使用以下命令查看文件内容,在Linux服务器中使用命令行中查看文件内容...
通常查看文件内容的方法是简单地在文本编辑器中打开它.然而,为了更快速地查看,事实上,也为了在shell脚本中实现自动化,使用文本编辑器的方法并不适合. 在Linux中,有很多命令可以解决这个问题:在命 ...
- Windows 如何在cmd命令行中查看、修改、删除与添加环境变量
首先明确一点: 所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改.也就是说当关闭此cmd命令行窗口后,将不再起作用.永久性修改环境变量的方法有两种:一种是直接修改注册表(此种方 ...
- windows cmd命令行中 查看 修改 删除与添加环境变量
首先明确一点: 所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改.也就是说当关闭此cmd命令行窗口后,将不再起作用.永久性修改环境变量的方法有两种:一种是直接修改注册表(此种方 ...
- 如何在cmd命令行中查看、修改、删除与添加环境变量
首先明确一点: 所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改.也就是说当关闭此cmd命令行窗口后,将不再起作用.永久性修改环境变量的方法有两种:一种是直接修改注册表(此种方 ...
最新文章
- python采集cpu信息
- 先进先出算法(FIFO)——页面置换
- r语言和python-R语言和Python —— 一个
- ME_DIRECT_INPUT_INFORECORD 信息记录批量修改程序
- graphpad如何做x轴在上方的图_R-ggridges包:山峰叠峦图
- hashmap put过程_阿里十年技术大咖,教你如何分析1.7中HashMap死循环
- Laravel-admin 分类避免踩坑
- 【记录】Docker安装后出现 Cannot connect to the Docker daemon
- __builtin_apply/__builtin_apply_args
- 更新智能开发研发进度
- java中之内存溢出说明
- 圆周率用计算机能算出来不,怎样用普通的家用计算机计算圆周率?
- 【OS】Linux下 /dev 常见特殊设备介绍与应用[loop]
- iOS TextField收取键盘的方法
- 知乎客户端跨平台 Hybrid 调试实战
- 2014-2015 少年辛苦终身事,莫向光阴惰寸功
- FI凭证冲销(蓝冲、红冲)和反记账后台配置
- Glide 入门到精通之四——图片缩放和调整大小
- .Net发布到IIS服务器,IIS服务器配置
- PMP证书到期后,有没有必要续证了
热门文章
- Internet Explorer 8 使用技巧(2):加速器
- 解决flask中文乱码的问题
- python3.7.2 pip 出现locations that require TLS/SSL异常处理方法
- 微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed
- 【记录】解决uni-app 用nginx反向代理出现Invalid Host header问题
- Google Maps API v2 android版本开发 国内手机不支持google play Service相关问题解决--图文教程
- python关于解决‘\u‘开头的字符串转中文的方法
- Java中的异常和处理详解
- [问题解决]NotImplementedError 错误原因:子类没有实现父类要求一定要实现的接口
- 【原】python3.7 无法pip安装提示ssl错误解决方案