我有一個包含許多可選組件的應用程序,所有組件都有自己的複雜依賴關係。例如,某些部署可能需要使用LDAP功能,並且需要加載ldap相關的gem。但許多人不會,而那些不應該不需要安裝ldap相關的寶石。使用捆綁程序在運行時加載依賴關係
如何根據用戶(部署者)啓用的組件,使用Bundler加載這些依賴項?
我不想強制部署者手動編輯他們的Gemfiles。必須通過應用程序的UI來啓用/禁用組件。
只是在Gemfile中包含每個可能的依賴都不是理想的。一些很少使用的組件需要大量複雜的本地編譯。另一種解決方案可能是讓應用程序編輯它自己的Gemfile。但是這有點尷尬,而且每次更換組件時都可能需要重新啓動。
Bundler有沒有在運行時動態加載gem的方法?如果沒有,是否有替代品可以提供類似Bundler的沙箱,但允許動態加載?
[本捆紮機特性請求(https://github.com/carlhuda/bundler/issues/1636)可以是相關的。 – 2012-03-06 19:09:04
感謝您的鏈接安德魯。我認爲如果功能要求得到滿足,我們會變得更好(只是 - 會更好),但我希望可以在我的應用程序中使用類似'Bundle.gem「gemname」'的調用碼。我有一種在Bundler當前的架構中可能無法實現的感覺,但我想知道是否還有其他類似的項目可以做到這一點。 – 2012-03-07 17:15:07