比较Ruby和develop SNAPSHOT中的版本
我想比较ruby中的包版本。我的一些包名是developesnapshot 当使用类似比较Ruby和develop SNAPSHOT中的版本,ruby,Ruby,我想比较ruby中的包版本。我的一些包名是developesnapshot 当使用类似 Gem::Version.new('develop-SNAPSHOT-1529333073') > Gem::Version.new('develop-SNAPSHOT') 我得到了答复 ArgumentError: Malformed version number string develop-SNAPSHOT-1529333073 在python中,我会使用packaging.version.
Gem::Version.new('develop-SNAPSHOT-1529333073') > Gem::Version.new('develop-SNAPSHOT')
我得到了答复
ArgumentError: Malformed version number string develop-SNAPSHOT-1529333073
在python中,我会使用packaging.version.parse()将类似的字符串与此进行比较,这样就可以了,Ruby中是否有等效的字符串?根据:
版本字符串通常应该是由句点分隔的一系列数字。每个部分(由句点分隔的数字)都被视为自己的编号,这些编号用于排序。例如,3.10排序高于3.2,因为10大于2
因此,您的版本字符串('develop-SNAPSHOT-1529333073'
和'develop-SNAPSHOT'
)的格式都不正确
您应该更改版本字符串的格式,例如,只更改为不带前缀的'1529333073'
,一切正常
如果希望在版本字符串中包含前缀,则需要在使用Gem::version.new()
例如,下面的代码将按预期工作:
Gem::Version.new('develop-SNAPSHOT-1529333073'.sub(/develop-SNAPSHOT-?/, '')) >
Gem::Version.new('develop-SNAPSHOT'.sub(/develop-SNAPSHOT-?/, ''))
=> true
根据:
版本字符串通常应该是由句点分隔的一系列数字。每个部分(由句点分隔的数字)都被视为自己的编号,这些编号用于排序。例如,3.10排序高于3.2,因为10大于2
因此,您的版本字符串('develop-SNAPSHOT-1529333073'
和'develop-SNAPSHOT'
)的格式都不正确
您应该更改版本字符串的格式,例如,只更改为不带前缀的'1529333073'
,一切正常
如果希望在版本字符串中包含前缀,则需要在使用Gem::version.new()
例如,下面的代码将按预期工作:
Gem::Version.new('develop-SNAPSHOT-1529333073'.sub(/develop-SNAPSHOT-?/, '')) >
Gem::Version.new('develop-SNAPSHOT'.sub(/develop-SNAPSHOT-?/, ''))
=> true