2017-03-08 66 views
1

我正在使用寶石,我無法弄清楚如何使用特定的方法。紅寶石工具瀏覽安裝的寶石代碼

目前要了解它是如何工作的,我必須去github,搜索gem,實現代碼是從一個依賴項,搜索其他gem的代碼倉庫,實現它的另一個gem,找到它,找到類,並從那裏開始從一個類到另一個有很多瀏覽器標籤打開。

我在Linux上使用崇高文本。是否有一些工具可以讓我直接從寶石中獲取代碼?

回答

1

你可以使用prysource-browsing.

它類似於IRB控制檯,可以看到是寫在普通的Ruby的任何類/方法的定義。

下面是一個例子與rgeo寶石:

> pry                            
[1] pry(main)> require 'rgeo' 
=> true 
[2] pry(main)> show-source RGeo::Cartesian.factory 

From: ~/.rvm/gems/ruby-2.3.1/gems/rgeo-0.6.0/lib/rgeo/cartesian/interface.rb @ line 27: 
Owner: #<Class:RGeo::Cartesian> 
Visibility: public 
Number of lines: 7 

def preferred_factory(opts_ = {}) 
    if ::RGeo::Geos.supported? 
    ::RGeo::Geos.factory(opts_) 
    else 
    simple_factory(opts_) 
    end 
end 
+0

是的,這就是我使用的 –

0

你可以「vendorize」你的寶石,是不是讓它們安裝在其他地方你的系統他們在項目中的。這樣你的編輯器就可以更容易地訪問源代碼。

如果您使用的是捆綁器,您可以執行一些類似bundle package這將使您的寶石在./vendor/cache。參考:How do I vendorize gems for Rails3/Bundler

我使用的另一種方法是gem_home這將管理您的$GEM_HOME,這是安裝寶石的地方。你會這樣做:

cd ~/dev/my_project 
gem_home . 
bundle install 

然後你會找到所有的寶石~/dev/my_project/.gems

您使用哪種方法不要忘記將目錄從版本控制中排除,例如,加到.gitignore

+0

我認爲問題是沒有找到寶石的源代碼。問題是要確定它是什麼,並直接轉到它的代碼。什麼'show-source'呢。 –