2012-03-06 2 views
2

많은 선택적 구성 요소가있는 응용 프로그램을 모두 가지고 있으며 모두 자체적 인 종속성이 있습니다. 예를 들어, 일부 배포는 LDAP 기능을 사용하고자 할 수 있으며 LDAP 관련 젬을로드해야합니다. 그러나 많은 사람들은 그렇지 않으며, ldap 관련 보석을 설치할 필요가 없습니다.런타임시 번들로 종속성로드

사용자 (배포자)가 활성화 한 구성 요소에 따라 Bundler를 사용하여 이러한 종속성을로드하려면 어떻게해야합니까?

배포자가 직접 Gemfiles를 편집하도록 강요하고 싶지는 않습니다. 응용 프로그램의 UI를 통해 구성 요소를 활성화/비활성화 할 수 있어야합니다.

Gemfile에 가능한 모든 종속성을 포함하는 것이 이상적이지 않습니다. 거의 사용되지 않는 구성 요소 중 일부는 복잡한 원시 컴파일을 많이 필요로합니다. 또 다른 해결책은 응용 프로그램이 자체 Gemfile을 편집하도록하는 것입니다. 그러나 이것은 다소 어색하며 구성 요소가 변경 될 때마다 다시 시작해야 할 가능성이 높습니다.

Bundler에서 런타임시 보석을 동적으로로드하는 방법이 있습니까? 그렇지 않다면 Bundler의 샌드 박싱과 같은 기능을 제공하지만 동적로드가 가능한 대안이 있습니까?

+0

참조 [이 Bundler를 기능 요청 (https://github.com/carlhuda/bundler/issues/1636)와 관련있다. –

+0

Andrew에게 감사드립니다. 기능 요청이 성취되면 더 좋은 모습을 보일 것이라고 생각합니다. (그냥 - 더 좋을 것입니다.)하지만 Bundle.gem "gemname"과 같은 것을 할 수 있다면 좋을 것입니다. 암호. Bundler의 현재 아키텍처에서는 가능하지 않을 수도있는 느낌이 있지만, 이와 비슷한 일을 할 수있는 유사한 프로젝트가 있는지 궁금합니다. –

답변

0

여러 개의 젬 파일을 제공하고 번들 설치 --gemfile을 사용하여 특정 젬 파일을 사용하고 해당 배포에 필요한 젬만 설치할 수 있습니다. 응용 프로그램에서

당신은 단지 적절한 보석

물론 그게 전부가 아니라 좋은 쉬운 방법을로드하기 위해 이전에 설치 한 Gemfile의 해당 그룹과 Bundle.setup을 사용할 수 있지만 당신이 원하는 기능을 제공한다 .

Bundler Setup bundle install

관련 문제