2014-01-15 46 views
6

我在我的Rails應用中安裝了Devise,我想通讀源代碼並瞭解它是如何工作的。我瀏覽了我的Rails應用程序的整個文件夾結構,但找不到任何代碼(方法調用除外)。如何查看我的機器上安裝的gem的源代碼?

我知道我可以從Github存儲庫中看到源代碼,但我希望在我的編輯器和本地計算機上看到它。

我猜這個代碼必須在一些主要的Ruby目錄中,但我在定位時遇到了問題。任何幫助表示讚賞。謝謝。

回答

7

嘗試gem unpack,它會將gem的源文件複製到當前目錄。例如,

gem unpack rails 

文檔:gem unpack

+0

是de - 它實際上在我的項目中創建了一個文件夾。不過,我想知道'dir'是我運行'bundle'時安裝的代碼? – fyz

+0

@feed_me_code:使用'bundle show GEMNAME' –

1

運行gem environment - 這會顯示關於您的寶石的所有信息,包括他們的位置。

此外,我建議你安裝一些IDE與go to source功能 - RubyMine只是輝煌(並有30天的免費試用),如果你想要去與NetBeans together with Ruby plugin完全免費的去。此功能可讓您快速導航到單擊方法的源代碼,而不管它是在您的代碼內還是在寶石內定義的。

+0

感謝您的提示。我沒有在全面的IDE中工作,因爲我擔心它可能會妨礙學習。現在我堅持崇高,所以我不依賴於IDE。我很久以前就犯了這個錯誤,當時我使用Dreamweaver進行HTML – fyz

+0

那麼我試圖用崇高的代碼寫紅寶石一段時間,切換到RubyMine實際上幫助我學習了更多的東西 - 主要是爲了'go to source'功能。 – BroiSatse

+0

TBH我沒有使用RubyMine中的很少的功能 - 我在命令行中手動運行所有任務(rake,rails g,git rspec)。我想強調'go to source'的影響力 - 它可以讓你找出你的代碼爲什麼不能自己工作。當我正在尋找某種選擇時 - 我只是深入到足以發現它,發現通過軌道核心方法傳遞的很多東西。爲了回答你的問題,我知道紅寶石不到1年,而且我從頭到尾都討厭它,因爲我完全不知道它是如何工作的。 – BroiSatse

4

除了塞爾吉奧的建議,還有另一種選擇。

在你的Rails路徑

$ bundle open devise 

這將在Gemfile中指定的版本,非常方便的編輯器中打開安裝寶石。

+0

嘿,這是返回'打開一個捆綁的寶石,設置$ EDITOR或$ BUNDLER_EDITOR' – fyz

+0

然後只需在bash中設置它。 '$ EDITOR = vim'或其他你喜歡的編輯器。 –

+0

是的,我試過。我實際上已經在我的bash中升級爲subl,但是當我嘗試設置它時,'$ EDITOR = subl'我得到了'-bash:=:命令未找到' – fyz

0

克隆GitHub的回購在本地機器上,並使用您喜歡的編輯器摸索吧:

git clone https://github.com/plataformatec/devise.git 
0

只需運行bundle show <gem-name>, 它會列出的寶石源代碼,並在接下來的步驟簡單的開放源代碼的絕對路徑使用文本編輯器這樣 subl <gem-code-absolute-path>

對於實例

讓我們假設你W¯¯螞蟻讀取kaminari寶石代碼

bundle show kaminari

/home/abdullah/.rvm/gems/[email protected]_gem_name/gems/kaminari-0.16.3

下一步驟(subl是命令與崇高的文本編輯器打開),其很好地工作,查看合作

subl /home/abdullah/.rvm/gems/[email protected]_gem_name/gems/kaminari-0.16.3

相關問題