2014-07-26 59 views
4

我有興趣提出一個需要我爲ruby需要gmail gem的應用程序。 現在有2個寶石:如何要求具有相同名稱的不同寶石?

https://github.com/dcparker/ruby-gmail

https://github.com/nu7hatch/gmail

兩個寶石具有相同要求的名稱,即:Gmail的 第二個是多少不清楚,但有其方法的一個問題。這種方法在第一個gem(鏈接)中運行良好。所以我想,也許我可以要求第一個只用於這種方法。這有可能這樣做,怎麼樣?

+3

我懷疑你可以同時使用這兩個寶石。一個定義了「class Gmail」,另一個定義了「module Gmail」。你不能有一個類和一個同名的模塊。即使兩者都是課程,或者兩者都是模塊(這樣你就可以同時需要這兩個文件),那麼你們兩個一起工作都會非常幸運。 – matt

回答

0

正如其他的答案和評論說,你不能簡單地要求兩者的寶石,因爲它們。

但是,由於兩者都託管在GitHub上,您可以將其中一個叉入並重命名違規類。只要你的重命名在寶石中是一致的,你可以在你的Gemfile中使用你的叉子

當然,你不會輕易地將變化重新定位到你的叉子上,但如果你真的必須使用這兩個寶石,這可能是一個讓你滿意的妥協方案。

-1

您可以添加以下到您的Gemfile:

gem 'gmail', :git => "git://github.com/dcparker/ruby-gmail", :branch => "master" 
gem 'gmail', :git => "git://github.com/nu7hatch/gmail", :branch => "master" 
+0

這不起作用。你會得到錯誤「你不能指定兩次來自不同來源的相同的寶石。」 – matt

+0

有什麼辦法可以創建一個別名?像alias第一個g1到g1,第二個到g2或類似的東西。 – optimusprime

相關問題