Itu adalah batasan versi yang pesimis . RubyGems akan menaikkan digit terakhir dalam versi yang disediakan dan menggunakannya hingga mencapai versi maksimum. Jadi ~>0.8.5
secara semantik setara dengan:
gem "cucumber", ">=0.8.5", "<0.9.0"
Cara mudah untuk memikirkannya adalah Anda tidak masalah dengan digit terakhir yang bertambah ke beberapa nilai arbitrer, tetapi digit sebelumnya dalam string tidak boleh lebih besar dari yang Anda berikan. Jadi ~>0.8.5
, nilai apa pun dapat diterima untuk digit ketiga (5) asalkan lebih besar dari atau sama dengan 5, tetapi 0,8 di depan harus "0.8".
Anda dapat melakukan ini, misalnya, jika Anda berpikir bahwa versi 0.9 akan menerapkan beberapa perubahan yang mengganggu, tetapi Anda tahu bahwa seluruh seri rilis 0.8.x hanyalah perbaikan bug.
Namun, hanya menggunakan ">=0.8.5"
akan menunjukkan bahwa setiap versi dari (atau sama dengan) 0.8.5 dapat diterima. Tidak ada batasan atas.
~>
dalam persyaratan versi .