理解Gemfile.lock中的波形符操作符

时间:2016-11-08 13:01:40

标签: ruby rubygems gemfile

我目前依赖以下

i18n (~> 0.6, >= 0.6.4)

我一直在阅读Ruby Gems - Declaring Dependency Guide

我发现了'〜> 0.6'部分表示介于0.6和1.0之间的任何内容 - 如果错误则纠正我。

但我仍然感到困惑,这对于第二个逗号分隔值实际意味着什么呢?

一位同事认为这意味着

>= 0.6.4, <= 0.7

但我不太确定。

1 个答案:

答案 0 :(得分:1)

简短回答:正如Holger在评论中指出的那样,~> 0.6, >= 0.6.4表示>= 0.6.4 and < 1.0

~>运算符名为pessimistic operator(或twiddle-wakka),其目标是在未来的版本中保护宝石免受潜在的错误/失败。

当您构建gem时,您必须创建一个特殊的Specification Class并将其放在.gemspec文件或Rakefile中。此类包含gem的信息,如名称,版本,许可证和依赖项。

一个好的做法是在悲观版本约束之后指定依赖项。因此,~> 0.6, >= 0.6.4之类的符号非常常见。

您可以找到更多信息here