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