Essa é uma restrição de versão pessimista . RubyGems irá incrementar o último dígito na versão fornecida e usá-lo até atingir a versão máxima. Portanto, ~>0.8.5
é semanticamente equivalente a:
gem "cucumber", ">=0.8.5", "<0.9.0"
A maneira mais fácil de pensar sobre isso é que você está bem com o último dígito incrementado para algum valor arbitrário, mas os que o precedem na string não podem ser maiores do que o fornecido. Assim ~>0.8.5
, para , qualquer valor é aceitável para o terceiro dígito (o 5), desde que seja maior ou igual a 5, mas o 0,8 à esquerda deve ser "0,8".
Você pode fazer isso, por exemplo, se achar que a versão 0.9 vai implementar algumas mudanças importantes, mas sabe que toda a série de lançamentos 0.8.x são apenas correções de bugs.
No entanto, o simples uso ">=0.8.5"
indicaria que qualquer versão posterior (ou igual a) 0.8.5 é aceitável. Não há limite superior.
~>
requisitos de versão .