web-dev-qa-db-ja.com

Ruby gem依存関係でチルダ-より大きい(〜>)はどういう意味ですか?

~>は、Ruby gem depenedencies?

たとえば、RubyMine IDEでレガシープロジェクトを開くと、このメッセージが表示されます

プロジェクトに必要な宝石は添付されていません:
 arel(〜> 2.0.2)、
 rspec-expectation(〜> 2.5.0)... 

Rubyワールド(RubyMineに固有ではない)のどこかで、このチルダより大きい表記法を見ました。この演算子は、厄介な響きtilde -より大きい

135
jwfearn

「最後の桁以上」を意味します。 ~> 2.3は「2.3以上または2.3以上3.0未満」を意味し、~> 2.3.0は、「2.3.0以上または2.3.0以上、2.4.0未満」を意味します。

「おおよそより大きい」と発音できます。

§悲観的なバージョンの制約

188
sepp2k

それは、メジャーバージョンではなく、それより低いバージョンをもたらすことを意味します。

したがって、たとえばarel (~> 2.0.2)は、(利用可能な場合)バージョンを使用します

  • 2.0.2
  • 2.0.3
  • 2.0。? (?が2以上の場合)

しかし、2.1は使用しません。

2
Augusto

インターネットによると

RubyGem依存関係が構文 "〜> 1.4.37"を使用している場合、これは「1.4.37以上であるが1.5以上ではないバージョン」を意味します。 1

言い換えれば、あなたのために
arel2.1 > version >= 2.0.2および
rspec-expectation2.6 > version >= 2.5.0

2
ashays

これは、バージョン2.0.2以降のgemを期待しているが、arel (~> 2.0.2)の場合は2.1ではないことを意味します。これは、マイナーリビジョンで重大な構文の変更をリリースする予定がないためです。そう arel 2.0.3は、2.0.2を超えるバグ/安定性の修正が期待されます。

1
Michael Papile