~>
は、Ruby gem depenedencies?
たとえば、RubyMine IDEでレガシープロジェクトを開くと、このメッセージが表示されます
プロジェクトに必要な宝石は添付されていません: arel(〜> 2.0.2)、 rspec-expectation(〜> 2.5.0)...
Rubyワールド(RubyMineに固有ではない)のどこかで、このチルダより大きい表記法を見ました。この演算子は、厄介な響きtilde -より大きい?
「最後の桁以上」を意味します。 ~> 2.3
は「2.3以上または2.3以上3.0未満」を意味し、~> 2.3.0
は、「2.3.0以上または2.3.0以上、2.4.0未満」を意味します。
「おおよそより大きい」と発音できます。
それは、メジャーバージョンではなく、それより低いバージョンをもたらすことを意味します。
したがって、たとえばarel (~> 2.0.2)
は、(利用可能な場合)バージョンを使用します
しかし、2.1は使用しません。
インターネットによると
RubyGem依存関係が構文 "〜> 1.4.37"を使用している場合、これは「1.4.37以上であるが1.5以上ではないバージョン」を意味します。 1
言い換えれば、あなたのためにarel
は2.1 > version >= 2.0.2
およびrspec-expectation
は2.6 > version >= 2.5.0
。
これは、バージョン2.0.2以降のgemを期待しているが、arel (~> 2.0.2)
の場合は2.1ではないことを意味します。これは、マイナーリビジョンで重大な構文の変更をリリースする予定がないためです。そう arel 2.0.3
は、2.0.2を超えるバグ/安定性の修正が期待されます。