Frage Was bedeutet Tilde-größer-als (~>) in Ruby Gem Abhängigkeiten? [Duplikat]


Diese Frage hat hier bereits eine Antwort:

Was macht ~> bedeuten im Zusammenhang mit Ruby Gem Abhängigkeiten?

Zum Beispiel, wenn ich ein altes Projekt in der RubyMine IDE öffne, bekomme ich das Botschaft

Für das Projekt erforderliche Edelsteine ​​sind nicht angehängt:
arel (~> 2.0.2),
rspec-Erwartung (~> 2.5.0) ...

Ich habe diese Tilde-größer-als-Notation anderswo in der Ruby-Welt gesehen (ist es nicht spezifisch für RubyMine). Hat dieser Operator einen anderen Namen als den? peinlich klingend Tilde-größer-als?


122
2018-03-02 16:38


Ursprung


Antworten:


Es bedeutet "gleich oder größer als in der letzten Ziffer", also z.B. ~> 2.3 meint "gleich 2,3 oder größer als 2,3, aber weniger als 3,0", während ~> 2.3.0 würde bedeuten "gleich 2.3.0 oder größer als 2.3.0, aber weniger als 2.4.0".

Sie können es als "ungefähr größer als" aussprechen.

§ Pessimistische Versionsbeschränkung


175
2018-03-02 16:43



Laut dem Internet

Wenn eine RubyGem-Abhängigkeit die Syntax "~> 1.4.37" verwendet, bedeutet dies "eine Version größer oder gleich 1.4.37, aber nicht 1.5 oder höher". 1

Mit anderen Worten, für dich
arel kann sein 2.1 > version >= 2.0.2 und
rspec-expectation kann sein 2.6 > version >= 2.5.0.


2
2018-03-02 16:45



Es bedeutet, dass jede niedrigere Version gleich oder größer ist, aber keine Hauptversion.

Also zum Beispiel arel (~> 2.0.2), wird (falls verfügbar) Versionen verwenden

  • 2.0.2
  • 2.0.3
  • 2.0.? (solange? ist> = 2)

aber es wird nicht 2.1 verwenden.?


1
2018-03-02 16:43



Das bedeutet, dass Sie ein Juwel erwarten, das Version 2.0.2 oder höher ist, aber nicht 2.1 arel (~> 2.0.2)  Dies geschieht, da Benutzer keine Änderungen der Syntax in kleineren Überarbeitungen veröffentlichen dürfen. Damit arel 2.0.3 Es wäre zu erwarten, Bug / Stability Fixes über 2.0.2 zu haben


1
2018-03-02 16:46