所以我正在使用Jeweler维持little gem of mine ,并且它提供了一组方便的 rake version:*
任务来管理版本号。 Jeweler 显然将版本号存储在名为 VERSION 的文件中,然后在 rake gemspec 上读取该文件。唯一的问题是,库中的实际 Ruby 代码也包含一个版本,例如。在库创建的 HTTP 请求 header 中发送:
module MediaWiki
class << self
def version
"0.1.6"
end
...
有什么想法可以让这两者自动同步吗?或者,MediaWiki 库是否可以通过某种方式查询它所变成的 gem 以找到自己的版本?
最佳答案
为什么不让版本方法返回一个常量?
# lib/media_wiki/version.rb
module MediaWiki
VERSION = "1.0.6"
end
# lib/media_wiki.rb (or wherever)
module MediaWiki
class << self
def version
MediaWiki::VERSION
end
end
end
编辑(回应评论):
此外,您还必须更新 Rakefile 才能使用该常量:
# Rakefile
Jeweler::Tasks.new do |gemspec|
...
gemspec.version = MediaWiki::VERSION
...
end
同行
关于ruby - 将 Jeweler 的 gem 版本与程序本身的版本字符串同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4300062/