2012-09-16 3 views
2

현재 보석 버전을 필요로 할 때 나는 레일과 레일 3.x를 특정 버전> 3.1 필요한 Gemspec이 : 나는이 진술을 업데이트 할 찾고수행하는 방법에 "OR"

Gem::Specification.new do |s| 
    # (...) 
    s.add_dependency "railties", "~> 3.1" 
    # (...) 
end 

~> 3.1 또는 ~> 4.0.0이 필요합니다. 나는 이미 시도했다 :

  • ~> 3.1, ~> 4.0.0
  • ~> 3.1 OR ~> 4.0.0
  • ~> 3.1 || ~> 4.0.0
  • ~> 3.1 ~> 4.0.0

없음 일 없다. 현재 RubyGems 버전에서 가능합니까?

지금은 3.1 이상을 사용하고 있지만 실제 질문은 가능합니다.

+1

이것은 흥미로운 요구 사항입니다. 해결책이 생기는지 봅시다. –

+1

둘 중 하나를 요구하는 조건은 무엇입니까? –

+0

@TonyHopkinson 내 보석이 ~> 3.1 (3.1.x, 3.2.x) 및 ~> 4.0.0 (4.0.x)과 호환된다는 것을 알고 있지만 레일스 4.1.x에서 작동하는지 확신하지 못합니다. . – jmonteiro

답변

2

~>을 사용하고 있기 때문에 3.1 이후의 모든 버전, 즉 3.x 또는 4.0.x가 아닌 4.x가 사용 된 것처럼 보입니다 그 다음 the rubygems guide에 따라, 당신의 의도 인 경우 1보다 큰

, 당신은 같은 패턴을 사용하는 것이 좋습니다 :

spec.add_dependency 'library', ['>= 3.1', '< 4.1'] 

을 나는 그것이 당신이 필요로하는 브라켓의 추가 것 같아요.

관련 문제