如果要檢視 activerecord 的 update_attribute 函式的源**,乙個比較常見的方法是直接在 rails 原始碼中搜kpxskvvhc索 def update_attribute。部落格 the pragmatic studio 介紹了乙個更方便的技巧,在 ruby 命令列中就能啟動編輯器直接訪問。
通過 object#method 方法可以獲得 update_attribute 方法的物件,而 www.cppcns.commethod#so程式設計客棧urce_location 則返回這個方法定義的檔案和位置。有了這個資訊後,就能啟動編輯器檢視源**了:
複製** **如下:
> method = user.first.method(:update_attribute)
user load (0.5ms) select `users`.* from `users` limit 1
=> #
> location = m
=> ["/users/wyx/.rvm/gems/ruby-1.9.2-p180/gems/activerecord-3.2.11/lib/active_record/persistence.rb",
177]
> `subl #:#`
=> ""
把這段**封裝成函式,加到 .pryrc 或者 .irbrc 中:
複製** **如下:
def source_for(object, method)
location = object.method(method).source_location
`subl #:#` if location && location[0] != '(eval)'
location
end如果要檢視 user 的例項方法 update_attribute,可以直接在 pry / irb 中呼叫
複製** **如下:
source_for(user.first, :update_attribute)
如果要使用其他編輯器,得把 subl #:# 換成這個編輯器對應的命令列:
複製** **如下:
# textmate
mate # -l #
# macvim
mvim # +#
# emacs
emacs +#
本文標題: ruby實現命令列中檢視函式原始碼的方法
本文位址:
Ruby 命令列大全
ruby 一般是從命令列執行,方式如下 ruby options programfile arguments 直譯器可以通過下列選項被呼叫,來控制直譯器的環境和行為。選項描述 a與 n 或 p 一起使用時,可以開啟自動拆分模式 auto split mode 請檢視 n 和 p 選項。c只檢查語法,...
ruby中輸入命令列編譯sass(ruby小白)
ruby 或cmd中 輸入命令列編譯sass步驟如下 1 舉例而言 首先在f盤下建立乙個總資料夾,比如test資料夾 其次在該資料夾下建立html,images,js,sass等資料夾。2 在sass資料夾中建立要使用到的sass檔案。例如common.scss,reset.scss,config....
ruby中5種執行命令列的命令
kernel exec 執行子程序並退出當前 ruby 程序.irb exec echo hello,whoami hello zgm kernel system 返回nil,true或false,子程序結束狀態儲存在 中.irb system echo hello,whoami hello zgm...