2014-07-26 6 views
4

루비 용 gem gem을 요구하는 애플리케이션을 만드는 데 관심이 있습니다. 는 지금이 개 보석이 있습니다 :이름이 다른 보석을 어떻게 요구합니까?

https://github.com/dcparker/ruby-gmail

https://github.com/nu7hatch/gmail

모두 보석 같은 이름을 필요로가, 예 : Gmail은 두 번째는 훨씬 분명하지만, 그 방법의 하나에 문제가있다 . 이 방법은 첫 번째 보석 (링크)에서 잘 작동합니다. 그래서 저는 그 방법에 대한 첫 번째 것을 요구할 수 있을지도 모른다고 생각했습니다. 그렇게 할 수 있습니까?

+3

두 보석을 함께 사용할 수 있을지는 의문입니다. 하나는'class Gmail'을 정의하고 다른 하나는'module Gmail'을 정의합니다. 같은 이름의 클래스와 모듈을 가질 수 없습니다. 둘 다 클래스이거나 둘 다 모듈이라면 (두 파일을 모두 요구할 수 있기 때문에) 함께 작업하는 것은 매우 운이 좋을 것입니다. – matt

답변

0

으로있는 그대로, 당신은 단순히 두 보석을 필요로 할 수 없다.

그러나 둘 다 GitHub에서 호스팅되고 있다면, 그 중 하나를 포크하고 문제가되는 클래스의 이름을 바꿀 수 있습니다. 젬 파일 내에서 포크를 사용할 수있는 한 보석의 이름이 일관성이 있다면

포크에 쉽게 변경 사항을 리베이스 할 수는 없겠지만, 두 젬을 모두 사용해야한다면 당신이 행복해하는 타협.

-1

당신은 당신의 Gemfile에 다음을 추가 할 수 있습니다 다른 사람의 답변과 의견은 말했다

gem 'gmail', :git => "git://github.com/dcparker/ruby-gmail", :branch => "master" 
gem 'gmail', :git => "git://github.com/nu7hatch/gmail", :branch => "master" 
+0

이것은 작동하지 않습니다. "서로 다른 소스에서 두 번 같은 보석을 지정할 수 없습니다."라는 오류 메시지가 표시됩니다. – matt

+0

별칭을 만들 수있는 방법이 있습니까? 앨리어스와 마찬가지로 첫 번째 보석은 g1로, 두 번째는 g2 또는 이와 비슷한 것입니다. – optimusprime

관련 문제