저는 공유하고 싶은 유틸리티 (라이브러리 아님)를 만들고 있습니다. 루비 젬을 포장하는 적절한 방법은 무엇입니까? 모범 사례가 있습니까?어떻게 응용 프로그램을 루비 젬으로 적절하게 패키지합니까?
특히, 사용자가 여러 버전의 종속성을 가질 가능성을 처리하는 방법을 알고 싶습니다. Bundler는 개발 환경에서 우수한 업무를 수행합니다. 최종 사용자 응용 프로그램에 해당하는 항목이 있습니까? gemspec
을 사용하면 자동으로 모든 지정된 보석의 올바른 버전이 필요합니까?
나는 패키지를 다 실행 가능한 것으로서 해결책을 알고 있지만이를 피하고 싶습니다. 나는 사용자가 gem install my_utility
을 발행하고 올바른 의존성을 가진 최신 버전을 얻을 수 있어야하고 여전히 정상적인 환경을 가지고 있어야한다고 생각한다.
제 코드에서는 표준 라이브러리'require'를 사용하여 라이브러리를로드합니다. gemspec 만 사용하면 사용자가 여러 버전이 있거나 최신 버전의 보석을 사용하더라도 지정된 버전이 필요한지 확인할 수 있습니까? 개발자로서 RVM 젬 세트를 사용하여이 문제를 다루지 만, 다른 사람들에게 그것을 강요하고 싶지는 않습니다. –
그래, 그게 내 말이 맞아,하지만 사실은 사실이 아닌 것 같아.하지만 좋은 소식이야 : 이것을 쉽게 할 수있는 방법이 아직도있다! 지금 당장 대답을 업데이트하겠습니다. – Jwosty
+1, 감사합니다. 필자는'require '대신'gem' 메소드가 있었기 때문에 루비 젬과의 빡빡한 결합을 초래할 것이므로 그것을 피했다. 나는이 전화를 격리 할 수있는 좋은 곳을 찾으려고 노력하고있다. 명확히하기 위해 라이브러리를 정확히 _load하지는 않을 것이고, 올바른 버전이'require'd 될 때만로드 될 것입니다. 맞습니까? –