https://rubygems.org/gems/bcrypt/versions/3.1.11왜 RubyGems에서 보석이 ~> AND =>를 제공합니까?
에서 bcrypt의 보석은 왜 spermy 비관적 연산자의 두 가지 버전이이 사용
gem 'bcrypt', '~> 3.1', '>= 3.1.11'
을 보여줍니다?
우리는 일반적으로 다른 보석
https://rubygems.org/gems/bcrypt/versions/3.1.11왜 RubyGems에서 보석이 ~> AND =>를 제공합니까?
에서 bcrypt의 보석은 왜 spermy 비관적 연산자의 두 가지 버전이이 사용
gem 'bcrypt', '~> 3.1', '>= 3.1.11'
을 보여줍니다?
우리는 일반적으로 다른 보석
>= 3.1.11
는 "낙관적"버전 제약 조건입니다. 3.1.11
의 모든 변경 사항은 작동하지만 버전 4.0.0
의 경우 이는 사실이 아닙니다.
~> 3.1
은 "비관적"입니다. 이것은 명시 적으로 코드를 손상시킬 수있는 버전을 제외시킵니다. 기본적으로는 >= 3.1
과 < 4.0
입니다. 당신이 ~> 3.1.1
이 있다면, 그것은 >= 3.1.1
에 동일하지만 것보다 3.2
당신이 새로운 이전 버전과 호환되는 버전의 사용을 허용하고 싶지만 당신이에 자세히 설명되어 있습니다 '~> 3.1', '>= 3.1.11'
같은 화합물의 요구 사항을 사용할 수있는 특정 버그 수정이 필요한 경우
http://guides.rubygems.org/patterns/#pessimistic-version-constraint하위 버전과 호환되는 최신 버전을 사용할 수 있지만 특정 버그 수정이 필요한 경우 다음과 같은 복합 요구 사항을 사용할 수 있습니다. '~> 2.2', '>= 2.2.1'
'~> 3.1'
에 대한 하나의 버전이 필요한 버전이 3.1.x
또는 3.2.x
또는 3.3.x
또는 ...이 될 수 있지만, 4.0
에 도달 결코 의미 사용할 수 있습니다.
'>= 3.1.11'
의 의미는 매우 명확합니다.
함께 넣어두면 버전이 3.x.y
일 수 있음을 의미합니다. x >= 2
또는 x = 1 and y >= 11
입니다.
gem 'bcrypt', '>= 3.1.11', '< 4'