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:
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.