2014-02-18 34 views
2

我正在寫一個可以與Sinatra和Rails一起使用的gem,但是,gem依賴關係根據開發人員使用該gem的框架而不同。有條件地要求基於Rails或Sinatra框架的Gemfile中的gem?

如果它是一個Rails應用程序,我們需要「青菜,軌」和「咖啡軌」 如果它是一個西納特拉應用程序,我們需要「青菜」和「咖啡腳本」

理想捆綁只會安裝基於這個gem被加載到哪個框架的必要的寶石,但我似乎無法弄清楚如何有條件地指定依賴關係。

任何建議將不勝感激。

回答

3

我建議你不要這樣做。這將是hackish和不可靠的。

然而,你可以做的是分而治之!構建一個與框架無關並且只處理邏輯的gem通用版本,我們稱之爲yourgem-core,然後您可以根據第一個創建另外兩個gem,稱爲yourgem-railsyourgems-sinatra

這是更好的,只有邏輯和邏輯yourgem-core測試,只有軌道在yourgem-rails集成測試,在yourgem-sinatra

+0

只有西納特拉集成測試這不回答這個問題,但它實際上是說否定了需要好的建議這個問題。謝謝! –

相關問題