Was ist der Unterschied zwischen ~ & gt; und & gt; = bei der Angabe von Rubygem in Gemfile?
Sehe ich oft die folgende notation(~>) im Gemfile.
gem "cucumber", "~>0.8.5"
gem "rspec", "~>1.3.0"
Ich kenne das-Zeichen (>=) ist einfach größer oder gleich, aber was tut (~>) - notation bedeutet?
Sind Sie beide gleich oder hat jeden bedeutenden Unterschied?
InformationsquelleAutor der Frage Autodidact | 2010-11-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das ist ein pessimistische version Einschränkung. RubyGems erhöht werden, die Letzte Ziffer in der version zur Verfügung gestellt, und verwenden, bis es ein maximum erreicht version. So
~>0.8.5
ist semantisch äquivalent zu:gem "cucumber", ">=0.8.5", "<0.9.0"
Der einfache Weg zu denken ist, dass du okay bist mit die Letzte Ziffer Inkrementieren, um den beliebigen Wert, aber die, vor es in die Zeichenkette kann nicht größer sein als das, was Sie zur Verfügung gestellt. Also für
~>0.8.5
jeder Wert ist akzeptabel für die Dritte Ziffer (5) vorausgesetzt, dass es größer ist als oder gleich 5, aber die führende 0.8 sein muss, "0.8".Könnten Sie tun dies zum Beispiel, wenn Sie denken, dass die 0.9 version wird zur Umsetzung einige grundlegende änderungen, aber Sie wissen, die gesamte 0.8.x release-Serie ist nur noch bugfixes.
Doch einfach mit
">=0.8.5"
würde bedeuten, dass die alle version später als (oder gleich) 0.8.5 ist akzeptabel. Es gibt keine Obergrenze.InformationsquelleAutor der Antwort eldarerathis
@millisami Sie können sogar verwenden, um hinzufügen von Abhängigkeiten mit der gemspec mit der pessimistischen Einschränkung wie diese:
Wenn Sie nicht wissen viel über das Juwel der Entwicklung oder sind gerade erst in diese sind einige gute Referenzen:
InformationsquelleAutor der Antwort strangeloops