Это пессимистическое ограничение версии .RubyGems будет увеличивать последнюю цифру в предоставленной версии и использовать ее, пока не достигнет максимальной версии.Так что ~>0.8.5
семантически эквивалентно:
gem "cucumber", ">=0.8.5", "<0.9.0"
Простой способ думать об этом - то, что вы в порядке с последней цифрой, увеличивающейся до некоторого произвольного значения, нопредшествующее ему в строке не может быть больше того, что вы указали.Таким образом, для ~>0.8.5
любое значение приемлемо для третьей цифры (5) при условии, что она больше или равна 5, но ведущий 0,8 должен быть «0,8».
Вы можете сделать это,например, если вы думаете, что в версии 0.9 будут реализованы некоторые критические изменения, но вы знаете, что вся серия релизов 0.8.x - это просто исправления ошибок.
Однако простое использование ">=0.8.5"
означает, что любая версия более поздняя, чем (или равная) 0.8.5, является приемлемой.Верхней границы нет.