2011-01-21 119 views
0

如果我正在使用Bundler和RSpec開發一個gem進行測試。我在哪裏做我的Bundler.setup?讓我們假設我的寶石被稱爲fancy-gem和我的目錄設置是類似以下內容:我必須在哪裏做Bundler設置?

Gemfile 
Gemfile.lock 
lib/ 
    fancy-gem.rb 
Rakefile 
README 
spec/ 
    ... 

如果我在「花式gem.rb」執行Bundler.setup或不與可能使用捆綁其他寶石這項事業的問題?我在想,當我沒有這樣做時,就沒有辦法保證我要求的第三方庫的正確版本被加載。

我已經問過,如果I need to add Bundler itself to the Gemfile。答案是否定的,但現在我不太確定,因爲如果我在某處執行Bundler.setup,那麼Bundler實際上是我的Gem的依賴項,並且應該在從rubygems.org下載時與我的Gem一起安裝。

回答

3

在我看來,你不應該依賴捆綁軟件,也不要在你的寶石中使用它。我這樣做的方式只需要在lib/fancy-gem.rb中使用gem的依賴關係(幾乎每個gem都只有少數運行時依賴項,所以這不應該太麻煩),我會打電話給Bundler .setup只在開發文件中(如spec_helper.rb或Rakefile)。通過這種方式,您不需要使用使用您的寶石的應用程序,並在開發寶石時仍然可以自動依賴管理的所有便利。

+0

你通常如何要求運行時依賴關係?你只是使用`require`還是你使用`gem'...','〜> 1.0.0';要求「...」明確要求某個版本? – t6d 2011-01-22 10:37:00

相關問題