我正在构建一个Ruby库,作为相关宝石的集合。所有的宝石都属于一个元宝石。结构如下:
mygem/
lib/
mygem-piece1/
lib/
mygem-piece2/
lib/我希望所有这些宝石共享一个版本。我可以手动保持同步,但这将是乏味和容易出错的。有更好的方法吗?
发布于 2014-07-22 16:35:10
假设mygem是元宝石,您将希望创建mygem/lib/mygem/version.rb
# mygem/lib/mygem/version.rb
module MyGem
VERSION = '1.0.0'
end然后,在您的复合宝石的每个子文件夹中,将有一个gemspec。例如:
# mygem/mygem-piece1/mygem-piece1.gemspec
require_relative '../../lib/mygem/version'
Gem::Specification.new do |gem|
# ...
gem.version = MyGem::VERSION
end(注意:这个解决方案需要Ruby1.9+)。
然后,当您想要更改版本时,只需编辑单个版本文件并释放新的gems。当您推送到Rubygems时,Gemspecs会被解释为YAML,因此在运行时值将被“计算”。
https://stackoverflow.com/questions/24598661
复制相似问题