web-dev-qa-db-fra.com

Que signifie tilde plus grand que (~>) dans Ruby dépendances gemmes?

Qu'est-ce que ~> _ signifie dans le contexte de Ruby dépendances gemmes?

Par exemple, lors de l'ouverture d'un projet hérité dans l'EDI RubyMine, le message suivant s'affiche:

 Les pierres précieuses requises pour le projet ne sont pas jointes: 
 Arel (~> 2.0.2), 
 Rspec-expectation (~> 2.5.0) ... 

J'ai vu cette notation tilde supérieure au reste de l'univers Ruby (ce n'est pas spécifique à RubyMine). Cet opérateur a-t-il un nom autre que le son maladroit tilde -plus-que?

135
jwfearn

Cela signifie "égal ou supérieur au dernier chiffre", donc par ex. ~> 2.3 signifie "égal à 2,3 ou supérieur à 2,3, mais inférieur à 3,0", tandis que ~> 2.3.0 signifierait "égal à 2.3.0 ou supérieur à 2.3.0, mais inférieur à 2.4.0".

Vous pouvez le prononcer comme "approximativement plus grand que".

§ contrainte de version pessimiste

188
sepp2k

cela signifie apporter une version inférieure égale ou supérieure à, mais pas une version majeure.

Ainsi, par exemple, arel (~> 2.0.2) utilisera (le cas échéant) des versions.

  • 2.0.2
  • 2.0.3
  • 2.0.? (tant que? est> = 2)

mais il n'utilisera pas 2.1.?

2
Augusto

Selon internet

Si une dépendance RubyGem utilise la syntaxe "~> 1.4.37", cela signifie "une version supérieure ou égale à 1.4.37, mais pas 1.5 ou supérieure". 1

En d'autres termes, pour vous
arel peut être 2.1 > version >= 2.0.2 et
rspec-expectation peut être 2.6 > version >= 2.5.0.

2
ashays

Cela signifie que vous attendez une gemme de version 2.0.2 ou supérieure, mais pas 2.1 dans le cas de arel (~> 2.0.2). Ceci est fait car les utilisateurs ne sont pas censés publier des modifications de syntaxe de rupture dans les révisions mineures. Alors arel 2.0.3 devrait avoir des corrections de bogues/stabilité sur la version 2.0.2

1
Michael Papile