instalar ruby rubygems gemfile

instalar - ¿Cuál es la diferencia entre ~> y>=al especificar rubygem en Gemfile?



instalar gemfile (2)

@millisami Incluso puedes usar para agregar dependencias con gemspec usando la restricción pesimista como esta:

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

Si no sabes mucho sobre el desarrollo de gemas o si simplemente estás metiéndote en él, estas son algunas buenas referencias:

  1. Tutorial que le enseña cómo hacer su propio RubyGem, las prácticas estándar asociadas con él y cómo cargarlo para que otros puedan instalarlo.
  2. Cómo crear una gema desde cero con Bundler

A menudo veo la siguiente notación (~>) en Gemfile.

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

Sé que el signo (> =) es igual o mayor que, pero ¿qué significa la notación (~>)? ¿Son ambos iguales o tienen alguna diferencia significativa?


Esa es una restricción de versión pesimista . RubyGems incrementará el último dígito en la versión provista y lo usará hasta que alcance una versión máxima. Entonces ~>0.8.5 es semánticamente equivalente a:

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

La forma más fácil de pensarlo es que está de acuerdo con que el último dígito se incremente a algún valor arbitrario, pero los que lo preceden en la cadena no pueden ser mayores que lo que usted proporcionó. Por lo tanto, para ~>0.8.5 , cualquier valor es aceptable para el tercer dígito (el 5) siempre que sea mayor o igual que 5, pero el 0,8 líder debe ser "0.8".

Puede hacer esto, por ejemplo, si cree que la versión 0.9 va a implementar algunos cambios de última hora, pero sabe que toda la serie de lanzamientos 0.8.x es solo una corrección de errores.

Sin embargo, simplemente usando ">=0.8.5" indicaría que cualquier versión posterior a (o igual a) 0.8.5 es aceptable. No hay límite superior.