2013-11-14 65 views
0

我正在開發紅寶石寶石,而且我的要求很混亂。紅寶石寶石 - 要求取決於運行時選項

寶石是一個網絡刮板,根據給定的選項,使用不同的方法訪問網絡,因此需要不同的寶石。一些用戶可能永遠不需要一些寶石,或其中任何一個。

我的問題是,我該怎麼把我的.gemspec:

s.add_runtime_dependency #do I require all the gems here? 

我在哪裏實際上需要在我的代碼所需的寶石,以及如何做測試?

我不知道這個約定。謝謝。

*代碼:https://github.com/ZirconCode/Scrapah

回答

0

RubyGems的提供依賴關係的兩個主要的「類型」:runtimedevelopment

運行時依賴關係是你的寶石需要工作的東西(如rails需要activesupport)。

當某人想要修改您的寶石時,開發依賴關係非常有用。當您指定開發依賴項時,另一名開發人員可以運行gem install --dev your_gem,並且RubyGems將抓取兩組依賴項(runtime and development)。典型的開發依賴包括測試框架和構建系統。

所以在寶石規範文件,你可以添加那些你的寶石需要工作

Gem::Specification.new do |s| 
    s.name = "gem name" 
    s.version = "2.0.0" 
    s.add_runtime_dependency "daemons", 
    ["= 1.1.0"] 
    s.add_development_dependency "bourne", 
    [">= 0"] 
寶石