Das ist eine pessimistische Versionsbeschränkung . RubyGems erhöht die letzte Ziffer in der bereitgestellten Version und verwendet diese, bis eine maximale Version erreicht ist. Ist ~>0.8.5
also semantisch äquivalent zu:
gem "cucumber", ">=0.8.5", "<0.9.0"
Die einfache Möglichkeit, darüber nachzudenken, besteht darin, dass Sie damit einverstanden sind, dass die letzte Ziffer auf einen beliebigen Wert erhöht wird, die in der Zeichenfolge davor stehenden Werte jedoch nicht größer sein können als die von Ihnen angegebenen. Somit ~>0.8.5
ist für die dritte Ziffer (die 5) jeder Wert akzeptabel, vorausgesetzt, er ist größer oder gleich 5, aber die führende 0,8 muss "0,8" sein.
Sie können dies beispielsweise tun, wenn Sie der Meinung sind, dass die Version 0.9 einige wichtige Änderungen implementieren wird, Sie jedoch wissen, dass die gesamte Release-Serie 0.8.x nur Bugfixes enthält.
Eine einfache Verwendung ">=0.8.5"
würde jedoch bedeuten , dass jede Version, die später als (oder gleich) 0.8.5 ist, akzeptabel ist. Es gibt keine Obergrenze.
~>
Versionsanforderung .