Вы можете использовать ограничение пессимистической версии .
gem 'library', '>= 2.2.0'
Это называется OptimisticVersionConstraint .Они надеются, что несовместимые изменения, внесенные в версию 3.0, будут по-прежнему работать с их программным обеспечением.У них нет уверенности в этом (скорее всего, версия verion 3.0 не была написана, когда они написали строку гема).Но они готовы рискнуть.
Некоторые другие клиенты вашей библиотеки не так полны надежд.Они полностью ожидают, что новые интерфейсы сломают их программное обеспечение, поэтому они хотят защититься от случайного использования новых интерфейсов.Они используют PessimisticVersionConstraint , который явно исключает вашу версию 3.0.
gem 'library', '>= 2.2.0', '< 3.0'
Делать это громоздко, поэтому RubyGems предоставляет пессимистический оператор ~>
(читай: примерно больше, чем).Используя пессимистический оператор, мы получаем:
gem 'library', '~> 2.2'
Обратите внимание, что мы включаем только 2 цифры версии.Оператор сбросит последнюю цифру версии, а затем увеличит оставшуюся последнюю цифру, чтобы получить номер версии верхнего предела.Следовательно, «~> 2.2» эквивалентно: ['> = 2.2', '<3.0'].Если бы мы сказали '~> 2.2.0', это было бы эквивалентно: ['> = 2.2.0', '<2.3.0'].Последняя цифра указывает уровень детализации контроля версий.(Помните, что вы всегда можете указать явный верхний предел, если пессимистический оператор слишком ограничен для вас). </p>