rails make instalar guides actualizar ruby rubygems

make - ¿Qué significa tilde-greater-than(~>) en las dependencias Ruby gem?



ruby installer (4)

De acuerdo con internet

Si una dependencia de RubyGem usa la sintaxis "~> 1.4.37", eso significa "una versión mayor o igual que 1.4.37, pero no 1.5 o superior". 1

En otras palabras, para ti
arel puede ser 2.1 > version >= 2.0.2 y
rspec-expectation puede ser 2.6 > version >= 2.5.0 .

Esta pregunta ya tiene una respuesta aquí:

¿Qué significa ~> en el contexto de las profundidades de las gemas de Ruby?

Por ejemplo, al abrir un proyecto heredado en el IDE de RubyMine, recibo este mensaje

Gems required for project are not attached: arel (~> 2.0.2), rspec-expectation (~> 2.5.0)...

He visto esta tilde-mayor-que la notación en otro lugar en el mundo de Ruby (no es específico de RubyMine). ¿Este operador tiene un nombre que no sea la tilde-mayor-que suena torpe?


Lo que esto significa es que estás esperando una gema que sea la versión 2.0.2 o superior, pero no 2.1 en el caso de arel (~> 2.0.2) Esto se hace porque no se supone que las personas liberen cambios de sintaxis en revisiones menores. . Por lo arel 2.0.3 , se espera que arel 2.0.3 tenga correcciones de error / estabilidad sobre 2.0.2


Significa "igual o mayor que en el último dígito", por lo tanto, ~> 2.3 significa "igual a 2.3 o mayor que 2.3, pero menor que 3.0", mientras que ~> 2.3.0 significaría "igual a 2.3.0 o mayor que 2.3.0, pero menor que 2.4.0 ".

Puede pronunciarlo como "aproximadamente mayor que".

§ Restricción de versión pesimista


significa traer cualquier versión inferior igual o mayor que, pero no una versión principal.

Entonces, por ejemplo arel (~> 2.0.2) , usará (si está disponible) versiones

  • 2.0.2
  • 2.0.3
  • 2.0.? (siempre que? sea> = 2)

pero no usará 2.1.