Esa es una restricción de versión pesimista . RubyGems incrementará el último dígito en la versión proporcionada 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 proporcionó. Por lo tanto ~>0.8.5
, para , cualquier valor es aceptable para el tercer dígito (el 5) siempre que sea mayor o igual a 5, pero el 0,8 inicial debe ser "0,8".
Puede hacer esto, por ejemplo, si cree que la versión 0.9 va a implementar algunos cambios importantes, pero sabe que toda la serie de versiones 0.8.x son solo correcciones de errores.
Sin embargo, el simple uso ">=0.8.5"
indicaría que cualquier versión posterior (o igual a) 0.8.5 es aceptable. No hay límite superior.
~>
requisito en versión .