Questo è un pessimistic version constraint. RubyGems incrementerà l'ultima cifra nella versione fornita e la userà fino a raggiungere la versione massima. Così ~>0.8.5
è semanticamente equivalente a:
gem "cucumber", ">=0.8.5", "<0.9.0"
Il modo più facile pensare a questo proposito è che stai bene con l'ultima cifra incremento di un valore arbitrario, ma quelli che lo precedono nella stringa non può essere maggiore di quello che hai fornito. Pertanto, per ~>0.8.5
, qualsiasi valore è accettabile per la terza cifra (la 5) a condizione che sia maggiore o uguale a 5, ma la 0.8 iniziale deve essere "0.8".
Si potrebbe fare questo, ad esempio, se si pensa che la versione 0.9 sta per implementare alcune modifiche di rottura, ma si sa che l'intera serie di release 0.8.x è solo bugfix.
Tuttavia, utilizzare semplicemente ">=0.8.5"
indica che qualsiasi versione successiva a (o uguale a) 0.8.5 è accettabile. Non c'è limite superiore.
Vedere anche: [Significato di ~ ~> 'nei requisiti di versione] (http://StackOverflow.Com/q/3414337/#3416289). –
'~>' è talvolta chiamato "operatore spermatico". –
Puoi specificare un intervallo per la versione Ruby nel tuo Gemfile? Per esempio. 'ruby" ~> 2.0 "' – Dennis