2016-08-08 9 views
1

Mit Gem::Dependency.new(nil, rule).match?(nil, version) kann ich überprüfen, ob eine Version einer Kompatibilitätsregel entspricht.Größte Kompatibilitätsregel in Ruby

Mit %w<0.1 0.2.1 0.44>.map {|v| Gem::Version.new v}.max.to_s kann ich leicht die letzte Version finden.

Ich habe eine Reihe von Abhängigkeiten und ich muss die größte finden, gibt es eine einfache Möglichkeit, es zu tun?

['~1.5', '~1.6'] -> '~1.6' zum Beispiel

Antwort

1

gerade von einer Reihe von Version Strings?

+0

Es ist schlecht, weil es einige verschiedene Kompatibilitätsoperatoren gibt und die maximale Funktion den Gleitkommawert nicht die Symver-Spezifikation verwendet. Zum Beispiel 0,44> 0,5 und mit Ihrer Antwort ist 0,5 größer als 0,44 und das ist falsch. – Charlon

+0

Sie müssten die Versionsnummern MAJOR, MINOR und PATCH teilen oder vergleichen und diese vergleichen. – DiegoSalazar