Ruby實現命令列中檢視函式原始碼的方法

2022-09-26 06:06:06 字數 1197 閱讀 7145

如果要檢視 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...