2010-04-11 100 views

回答

5

Gem Packaging: Best Practices給出了很多建議,其中包括一些

  • 不污染全局負載路徑。理想情況下,您的lib目錄中只有foo.rb,並將所有其他文件放入lib/foo

  • 不要使用__FILE__require文件。

  • 不要依賴加載路徑以外的任何東西。文件夾可能與原始版本中的結構不同。例如,不要使用類似於

    VERSION = :: File.read(:: File.join(:: File.dirname(FILE),「..」,「..」,「VERSION 「))。strip

  • 不要在lib內管理$LOAD_PATH

  • 提供VERSION常數。

  • 不要依賴rubygems。使用你的代碼的人可能不會使用rubygems,而是使用其他一些包裝系統(或者沒有包裝系統)。同樣,不要在代碼本身中提到版本依賴關係,或者rescue Gem::LoadError

Rubygems dependencies. Please...認爲你不應該列出可選的運行時依賴,並應自運行時依賴分開開發商。

From my own experience:如果不出意外,嘗試建立和釋放到野外之前在本地安裝您的寶石。它避免了牛皮紙袋的泄漏。

+0

絕對是一個很好的和正確的書面記錄,特別是所提到的「寶石包裝:最佳實踐」 – 2010-04-11 06:58:06

+0

你的最後一點是非常重要的。它基本上可以被翻譯爲:「編寫Ruby Gems的一個重要問題不是編寫Gems,而是編寫庫。」 – 2010-04-11 08:38:16

+0

@Jörg:非常像禪宗。 (「寶石包裝:最佳實踐」的最後一點,而不是「來自我自己的經驗」) – 2010-04-12 23:29:05