我应该如何将代码的版本号存储在 ruby gem 中?
我在野外看到了两种技术:
<gem root>/VERSION
仅包含您的semver。<gem root>/lib/your_gem/version.rb
其中包含以下代码:
module IfYourCodeIsInAModule
class YourGem
VERSION="0.0.1"
end
end
我喜欢 1. 因为它真的很明显。我喜欢 2. 因为它是我的代码的一部分,我可以轻松地用我的版本号写入日志。
我不喜欢 1. 因为如果我想从我的代码中访问版本号,我必须读取文件(这不是最糟糕的事情),我不喜欢 2. 因为如果我的核心类从另一个扩展上课那么我也必须有那种礼貌version.rb
(或者得到一个superclass mismatch
) - 例如。
module IfYourCodeIsInAModule
class YourGem < OtherWork
VERSION = "0.0.1"
end
end
当您从实际代码中需要此文件以进行运行时,一切都很好。当您将它包含在您的 gemspec 中时,您突然需要 require 'other_work'
获取您的版本号!
我很高兴推出自己的解决方案,但这不可能是一个新问题,社区在做什么,对此有何普遍看法?