Это ограничение пессимистичной версии . 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. Верхней границы нет.
~>
требования к версии .