2013-03-09 56 views
9

我剛剛創建使用束測試寶石,它創造了無法讀取內容的.gem文件,所以我想知道.gem文件包含什麼內容? Rails框架如何使用它?

  1. 又有什麼.gem文件包含?這是二進制數據嗎?因爲我以前認爲.gem文件包含打包的紅寶石功能

  2. 這是如何通過rails框架使用.gem文件?因爲它看起來並不像一個模塊

感謝

回答

5

如果您檢查文件系統上的文件,可以看到發生了什麼。

在一個POSIX環境中,可以檢查與文件命令文件:

$: file bundler-1.3.0.gem   
bundler-1.3.0.gem: POSIX tar archive 

正如你可以看到它是一個tar歸檔。所以它是一個二進制文件,由gem工具打包和管理。

這是'二元',所以你不會看到它,因爲你可能已經預料到。

儘管如此,您仍然可以繼續認爲它包含打包的ruby「函數」。

你已經告訴它通過你的gemspec(但你包括它)包含的一切都在那裏。

就Rails如何使用gemfile而言,它通常用於將gem安裝到系統中,完成該操作的方式部分取決於您的環境決策。

5

寶石文件只是包含(至少)gemspec文件tar歸檔。通常還會有ruby源文件和可能的本地代碼或支持資源(例如,設計爲與rails一起使用的gem可能還會封裝一些javascript)。包含README,CHANGELOG和其他文檔也很常見。

+0

謝謝,我怎麼看/打開一個寶石文件? – iCyborg 2013-03-09 09:58:01

+0

只是假裝它是一個正常的tar文件 - tar -xvf foo.gem – 2013-03-09 10:31:17