最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ruby實(shí)現(xiàn)命令行中查看函數(shù)源碼的方法

 更新時(shí)間:2014年07月22日 09:42:54   投稿:junjie  
這篇文章主要介紹了Ruby實(shí)現(xiàn)命令行中查看函數(shù)源碼的方法,,需要的朋友可以參考下

如果要查看 ActiveRecord 的 update_attribute 函數(shù)的源代碼,一個(gè)比較常見的方法是直接在 Rails 源碼中搜索 def update_attribute。博客 The Pragmatic Studio 介紹了一個(gè)更方便的技巧,在 Ruby 命令行中就能啟動(dòng)編輯器直接訪問。

通過 Object#method 方法可以獲得 update_attribute 方法的對象,而 Method#source_location 則返回這個(gè)方法定義的文件和位置。有了這個(gè)信息后,就能啟動(dòng)編輯器查看源代碼了:

復(fù)制代碼 代碼如下:

> 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]}`
=> ""

把這段代碼封裝成函數(shù),加到 .pryrc 或者 .irbrc 中:

復(fù)制代碼 代碼如下:

def source_for(object, method)
  location = object.method(method).source_location
  `subl #{location[0]}:#{location[1]}` if location && location[0] != '(eval)'
  location
end

如果要查看 User 的實(shí)例方法 update_attribute,可以直接在 pry / irb 中調(diào)用

復(fù)制代碼 代碼如下:

source_for(User.first, :update_attribute)

如果要使用其他編輯器,得把 subl #{location[0]}:#{location[1]} 換成這個(gè)編輯器對應(yīng)的命令行:

復(fù)制代碼 代碼如下:

# TextMate
mate #{location[0]} -l #{location[1]}

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

# Emacs
emacs {location[0]} +#{location[1]}

相關(guān)文章

  • Ruby迭代器的7種技巧分享

    Ruby迭代器的7種技巧分享

    這篇文章主要介紹了Ruby迭代器的7種技巧分享,Ruby中的迭代器非常人性化,本文既是講解了7個(gè)技巧也是講解了7種迭代器,需要的朋友可以參考下
    2015-01-01
  • CentOS中配置Ruby on Rails環(huán)境

    CentOS中配置Ruby on Rails環(huán)境

    經(jīng)過一個(gè)上午的折騰,終于把ROR環(huán)境在CentOS中搞定,繞了很多彎路,把文章寫下來總結(jié)一下
    2014-03-03
  • 淺談Ruby on Rails的國際化

    淺談Ruby on Rails的國際化

    這篇文章主要介紹了Ruby on Rails的國際化,提出了日期貨幣等格式相關(guān)需要注意的地方,需要的朋友可以參考下
    2015-08-08
  • Ruby環(huán)境下安裝使用bundler來管理多版本的gem

    Ruby環(huán)境下安裝使用bundler來管理多版本的gem

    這篇文章主要介紹了Ruby環(huán)境下安裝使用bundler來管理多版本的gem的方法,舉了Ruby On Rails中的應(yīng)用實(shí)例來進(jìn)行演示,需要的朋友可以參考下
    2016-06-06
  • Java 版的 Ruby 解釋器 JRuby 1.7.14 發(fā)布

    Java 版的 Ruby 解釋器 JRuby 1.7.14 發(fā)布

    JRuby,一個(gè)采用純Java實(shí)現(xiàn)的Ruby解釋器,由JRuby團(tuán)隊(duì)開發(fā)。它是一個(gè)自由軟件,在CPL/GPL/LGPL三種許可協(xié)議下發(fā)布。
    2014-08-08
  • Ruby與Ruby on Rails框架環(huán)境搭建的簡明教程

    Ruby與Ruby on Rails框架環(huán)境搭建的簡明教程

    這篇文章主要介紹了Ruby與Ruby on Rails框架環(huán)境搭建的簡明教程,包括RubyGems的升級與OpenSSL的支持等配置,需要的朋友可以參考下
    2016-05-05
  • Ruby實(shí)現(xiàn)的圖片濾鏡算法代碼

    Ruby實(shí)現(xiàn)的圖片濾鏡算法代碼

    本文給大家分享的是使用ruby實(shí)現(xiàn)的幾種圖片濾鏡的算法,包括灰度、二值、底片、浮雕。非常的簡單實(shí)用,有需要的小伙伴可以參考下
    2017-01-01
  • Ruby中遍歷目錄的簡潔方法

    Ruby中遍歷目錄的簡潔方法

    這篇文章主要介紹了Ruby中遍歷目錄的簡潔方法,本文分享了一個(gè)復(fù)雜方法和一個(gè)簡潔方法,需要的朋友可以參考下
    2015-01-01
  • 使用Ruby來處理JSON的簡單教程

    使用Ruby來處理JSON的簡單教程

    這篇文章主要介紹了使用Ruby來處理JSON的簡單教程,用到了Ruby gem,需要的朋友可以參考下
    2015-04-04
  • Ruby基礎(chǔ)知識(shí)之方法、代碼段

    Ruby基礎(chǔ)知識(shí)之方法、代碼段

    這篇文章主要介紹了Ruby基礎(chǔ)知識(shí)之方法、代碼段,本文講解了定義方法、取消方法、方法參數(shù)、代碼塊和閉包等知識(shí),需要的朋友可以參考下
    2015-04-04

最新評論

芮城县| 虹口区| 淮南市| 教育| 甘孜县| 博野县| 龙陵县| 陇南市| 平乐县| 宁波市| 永清县| 迭部县| 交城县| 宝兴县| 中超| 青冈县| 凭祥市| 咸阳市| 祁阳县| 龙山县| 许昌市| 沧州市| 朔州市| 旬阳县| 五华县| 崇信县| 琼海市| 灵丘县| 辽中县| 班玛县| 县级市| 称多县| 扎赉特旗| 成都市| 尼玛县| 南部县| 四平市| 承德市| 土默特左旗| 茶陵县| 张家港市|