Pregunta

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

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

Sé que el signo (> =) es mayor o igual a, pero lo que hace el (~>) notación media? Son ambos iguales o tiene alguna diferencia significativa?

¿Fue útil?

Solución

Eso es un pesimista versión restricción . RubyGems aumentarán el último dígito de la versión proporcionada y el uso que hasta que alcanza un máximo de versión. Así ~>0.8.5 es semánticamente equivalente a:

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

La forma más fácil de pensar en ello es que estás de acuerdo con el último dígito de incrementar a un valor arbitrario, pero los que lo preceden en la cadena no puede ser mayor que lo que nos ha facilitado. Así, para ~>0.8.5, cualquier valor es aceptable para el tercer dígito (el 5) siempre que es mayor que o igual a 5, pero el principal 0.8 debe ser "0,8".

Se puede hacer esto, por ejemplo, si usted piensa que la versión 0.9 se va a implementar algunos cambios de último momento, pero ya se sabe toda la serie de lanzamientos 0.8.x está a sólo correcciones de errores.

Sin embargo, el simple uso de ">=0.8.5" indicaría que cualquier versión posterior que (o igual a) 0.8.5 es aceptable. No hay ningún límite superior.

Otros consejos

@millisami Incluso se puede utilizar para agregar dependencias con el uso de la restricción gemspec pesimista como esto:

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

Si usted no sabe mucho sobre el desarrollo gema o se acaba de entrar en él, éstas son algunas referencias buenas:

  1. tutorial que te enseña cómo hacer su propia rubygem, las prácticas estándar asociados a ella, y la forma de subirlo para que otros puedan instalarlo.
  2. Cómo crear una joya de cero con Bündler
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top