我一直在研究一些我想分享的工具(不是庫)。使用rubygems打包它們的正確方法是什麼?有沒有最佳做法?如何正確打包使用rubygems的應用程序?
具體來說,我想知道如何處理用戶具有多個版本的依賴關係的可能性。 Bundler在開發環境中做得非常出色;對於最終用戶應用程序是否有任何等價物?任何方式使用gemspec
自動需要所有指定的寶石的正確版本?
我知道幾個包的一切可執行的解決方案,但我想避免它們。我認爲用戶應該能夠發出gem install my_utility
並獲得具有正確依賴關係的最新版本,並且仍然有一個健全的環境。
在我的代碼中,我使用標準的'require'來加載庫。只有'gemspec'足以確保指定的版本是必需的,即使用戶有多個,可能更新的版本的寶石?作爲一名開發人員,我使用RVM gemsets處理這個問題,但我不想強加給其他人。 – 2012-02-27 23:15:46
是的,這正是我的意思,但它似乎並不是真的......但是好消息:仍然有一種方法可以輕鬆地做到這一點!我現在就更新答案。 – Jwosty 2012-02-27 23:20:41
+1,謝謝。我當時覺得'gem'方法可以取代'require',所以我避免了它,因爲它會導致與rubygems緊密耦合。我正在努力找出一個隔離這些電話的好地方。只是爲了澄清,它不會正確地加載我的庫,只確保正確的版本在需要時加載,對嗎? – 2012-02-27 23:37:55