所以我用 Jeweler 维持 little gem of mine ,它提供了一套方便的 rake version:* 用于管理版本号的任务Jeweler显然将版本号存储在一个名为version的文件中,然后读取 rake gemspec . 唯一的问题是,库中的实际Ruby代码 也 包含一个版本,例如在库创建的HTTP请求头中发送:
rake version:*
rake gemspec
module MediaWiki class << self def version "0.1.6" end ...
有没有办法让这两个自动同步?或者,MediaWiki库是否可以通过某种方式查询它被转换成的gem来查找自己的版本?
为什么不让version方法返回一个常量?
# 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
同龄人