Usando Twiddle Wakka em seu Gemfile
Você deve ter se deparado com algo assim em seu gemfile: gem 'rails', '~> 5.2'
esse ~
que aparece é o Twiddle Wakka. Uma sintaxe simplificada para facilitar a escrita.
Partindo do pressuposto que você já utilize Semantic Version para versionar seus apps e gems, vamos pensar em como você restringe as chamadas a essas versões na hora de gerenciá-las no gemfile. Existem 2 tipos de restrição de versão, são elas: as otimistas e as pessimistas.
Imagine uma gem chamada Lib que tenha as seguintes versões:
Lib 1.8.0
Lib 2.1.0
Lib 2.2.0
Lib 2.2.1
Lib 2.3.5
Lib 3.0.0
Eu gostaria de restringir as versões abaixo de 2.1.0 e permitir todas, a partir da versão 2.1.0 possam ser instaladas. Neste caso eu serei otimista.
gem 'lib', '>=2.1.0'
É possível que a versão 3.0.0 não seja compatível com a minha aplicação. então eu preciso restringir de forma pessimista, informando os limites em que o bundle pode instalar.
gem 'lib', '>=2.1.0', '< 3.0.0'
Agora nós garantimos que o bundle pode instalar todas as versões maior ou igual a 2.1.0 e menor que 3.0.0.
o Twiddle Wakka é uma forma de escrever menos, veja:
gem 'lib', '~>=2.2'
Este equivale a ['>=2.2.0', '< 2.3.5']
Ou se eu quiser incluir todas as versões com major 2 eu posso fazer assim:
gem 'lib', '~>=2'
Equivale a ['>=2.2.0', '< 3.0.0']
Referência: https://guides.rubygems.org/patterns/