Frage

Oft sehe ich die folgende Notation (~>) in Gemfile.

gem "cucumber", "~>0.8.5"
gem "rspec", "~>1.3.0"

Ich weiß, das Zeichen (> =) ist nur größer oder gleich, aber was bedeutet das (~>) Schreibweise bedeuten? Sie sind beide gleich oder hat keinen signifikanten Unterschied?

War es hilfreich?

Lösung

Das ist eine pessimistische Version Einschränkung . RubyGems wird die letzte Ziffer in der und Nutzung zur Verfügung gestellt Version erhöhen, dass, bis er eine maximale Version erreicht. So ~>0.8.5 ist semantisch äquivalent zu:

gem "cucumber", ">=0.8.5", "<0.9.0"

Der einfache Weg, um darüber nachzudenken, ist, dass Sie in Ordnung sind mit der letzten Ziffer zu einem willkürlichen Wert erhöht wird, aber die, die es in der Zeichenfolge vorangehenden können nicht größer sein als das, was Sie zur Verfügung gestellt. So zum ~>0.8.5, jeder Wert akzeptabel ist für die dritte Stelle (die 5) vorgesehen ist, dass es größer als oder gleich 5, aber die führenden 0,8 muß „0,8“ werden.

Sie können dies tun, zum Beispiel, wenn Sie denken, dass die Version 0.9 wird einige Bruch Änderungen implementieren, aber Sie wissen, dass die gesamte 0.8.x Release-Serie nur Fehlerbehebung sind.

Allerdings einfach ">=0.8.5" verwenden würde zeigen, dass alle Version später als (oder gleich) 0.8.5 ist akzeptabel. Es gibt keine Obergrenze.

Andere Tipps

@millisami können Sie auch mit dem gemspec hinzufügen Abhängigkeiten verwenden die pessimistische Einschränkung wie folgt aus:

gem.add_runtime_dependency "thor", "~> 0.18.1"

Wenn Sie nicht viel über Juwel Entwicklung wissen oder sind nur in sie bekommen, das sind einige gute Referenzen:

  1. Tutorial, das Sie lehrt, wie Sie Ihre eigene RubyGem zu machen, die Standard-Praktiken mit ihm verbunden, und wie es zu laden, damit andere es installieren.
  2. Wie ein Juwel von Grund auf mit Bündler erstellen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top