我正在开发一种红宝石宝石,我的需求一团糟。
gem 是一个网络抓取器,根据给定的选项,它使用不同的方法来访问网络,因此需要不同的 gem。有些用户可能永远不需要一些宝石,或者其中任何一个。
我的问题是,我应该在我的 .gemspec 中放入什么:
s.add_runtime_dependency #do I require all the gems here?
我实际上在哪里需要代码中必要的 gem,以及如何进行测试?
我不知道这方面的惯例。谢谢。
*代码:https://github.com/ZirconCode/Scrapah
RubyGems提供了两种主要的依赖"类型":runtime
和development
。
运行时依赖项是 gem 工作所需的(例如rails
需要activesupport
)。
当有人想要对您的 Gem 进行修改时,开发依赖项非常有用。当您指定开发依赖项时,另一个开发人员可以运行gem install --dev your_gem
,RubyGems
将获取两组依赖项(runtime and development
)。典型的开发依赖项包括测试框架和构建系统。
因此,在 Gem 规范文件中,您可以添加 Gem 工作所需的 Gem
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"]