ruby 中最大的兼容性规则
Posted
技术标签:
【中文标题】ruby 中最大的兼容性规则【英文标题】:Greatest compatibility rule in ruby 【发布时间】:2016-12-14 14:40:47 【问题描述】:使用Gem::Dependency.new(nil, rule).match?(nil, version)
,我可以检查版本是否符合兼容性规则。
使用%w<0.1 0.2.1 0.44>.map |v| Gem::Version.new v.max.to_s
,我可以轻松找到最新版本。
我有一系列依赖项,我需要找到最大的,有没有简单的方法来做到这一点?
例如['~1.5', '~1.6'] -> '~1.6'
【问题讨论】:
【参考方案1】:只是来自一个版本字符串数组?
['~1.5', '~1.6'].map |d| d.sub "~", "" .map(&:to_f).max
【讨论】:
这很糟糕,因为有一些不同的兼容性运算符,并且 max fonction 使用 float 而不是 Symver 规范。例如 0.44 > 0.5 并且根据您的答案,0.5 大于 0.44,这是错误的。 您必须拆分或获取版本 MAJOR、MINOR 和 PATCH 编号并进行比较。以上是关于ruby 中最大的兼容性规则的主要内容,如果未能解决你的问题,请参考以下文章