婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Ruby實現命令行中查看函數源碼的方法

Ruby實現命令行中查看函數源碼的方法

熱門標簽:天津外呼系統怎么收費 外呼線路從哪里出來的 AI電銷機器人 線路 漯河電銷 征服者企業地圖標注 淮安自動外呼系統供應商 中牟外呼系統違法嗎 巫師3地圖標注魔力之所 柯城手機地圖如何做地圖標注

如果要查看 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]}`
=> ""

把這段代碼封裝成函數,加到 .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]}

您可能感興趣的文章:
  • Ruby中的方法(函數)學習總結
  • Ruby中常用的字符串處理函數使用實例
  • ruby中的雙等號==問題詳解
  • Ruby里4種比較函數(equal?, eql?, ==, ===)詳解

標簽:內江 甘孜 大慶 棗莊 克拉瑪依 河池 西雙版納 南昌

巨人網絡通訊聲明:本文標題《Ruby實現命令行中查看函數源碼的方法》,本文關鍵詞  Ruby,實現,命令,行中,查看,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Ruby實現命令行中查看函數源碼的方法》相關的同類信息!
  • 本頁收集關于Ruby實現命令行中查看函數源碼的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 巩义市| 巨野县| 北票市| 襄城县| 固始县| 策勒县| 延边| 陈巴尔虎旗| 贵港市| 长乐市| 华容县| 宁安市| 本溪市| 乾安县| 遂宁市| 鄱阳县| 万源市| 莫力| 邢台县| 南乐县| 新宾| 丰都县| 勃利县| 长海县| 贵南县| 贵定县| 祥云县| 万安县| 五大连池市| 舒兰市| 巢湖市| 隆化县| 从江县| 岗巴县| 商都县| 苍山县| 遂宁市| 拉孜县| 漳州市| 永康市| 青浦区|