我见过很多东西
Foo::VERSION::STRING
Foo::VERSION
Foo::Version
任何建议最佳/最常见的默认值是什么?
答案 0 :(得分:2)
首先,Foo::Version
似乎对我不对。这意味着该版本是一个类或一个模块,但应该是一个常量,作为前两个示例。
除此之外,这里没有黄金法则。以下是一些例子:
Rails::VERSION::STRING
(注意:所有大写的模块VERSION
。)
SimpleForm::VERSION
Nokogiri::VERSION
RSpec::Version::STRING
(注意,模块Version
,与上面的Rails进行比较。)
Cucumber::VERSION
SimpleForm::VERSION
上面的大多数都在lib/[name]/version.rb
文件中定义了它们的版本,除了在项目根目录中有version.rb
的Rails和Cucumber,它已经将它隐藏在{lib/cucumber/platform.rb
1}}文件。
另请注意,以上所有内容都使用String
作为版本。 (Rails甚至将MAJOR
,MINOR
,TINY
和PRE
常量连接成一个VERSION
常量。)这样可以轻松比较版本:
"1.2.3" > "0.4.2" # => true
"1.2.3" > "1.2.2" # => true
"1.2.3" > "1.2" # => true
但是,当您为补丁级别遇到两位数时,这样的比较会失败:
"1.2.3" > "1.2.12" # => true
对我而言,定义Foo::VERSION
是最好的选择,在lib/foo/version.rb
中定义,并将其设为String
值。