traduccion gems from ruby rubygems gem bundler

ruby - from - ¿Cómo puedo usar la regla "gemspec" en Bundler, mientras sigo usando el pago local de una gema?



bundler traduccion (3)

Escenario: estoy desarrollando una joya gem-foo , usando Bundler. Tengo una dependencia en gem-bar , que he comprobado localmente para el desarrollo. Puedo declarar esta dependencia en el Gemfile como:

gem "gem-bar", :path => "/path/to/local/gem-bar"

Sin embargo, al desarrollar una gema, la "mejor práctica" parece ser definir las gemas necesarias en la gem-foo.gemspec través de:

s.add_runtime_dependency ''gem-bar''

y luego simplemente incluya las dependencias en el Gemfile usando:

gemspec

Lo que me gustaría hacer es agregar la dependencia del tiempo de ejecución en la gema en el gemspec, pero hacer algunas modificaciones locales en gem-bar y tener una bundle install usar el pago de desarrollo local. Supongamos el caso en el que controlo ambas gemas, y las estoy pirateando de forma concurrente, y presionaré las nuevas versiones simultáneamente. Podría comentar la s.add_runtime_dependency en gemspec y agregarla con la ruta local en el Gemfile, pero eso parece ... ¿propenso a errores? El gemspec siempre debe declarar esta dependencia, y el Gemfile debe poder anular la ubicación que Bundler debería usar para la gema. Sin embargo, si realmente hace esto, obtendrá el siguiente error:

No puede especificar la misma gema dos veces provenientes de diferentes fuentes. Has especificado que la barra de gemas (> = 0) debe provenir de una fuente no especificada y fuente en / ruta / a / local / barra de gemas

Idealmente, solo tendría algún tipo de anulación local, ya que nunca quiero el caso en el que empuje accidentalmente la gema con el requisito de una gem-bar local en una ruta específica. Eso sería tonto.

¿Alguien tiene una buena solución para este caso de uso?


¡Chico! Nunca llego a estos a tiempo ¿verdad? Prueba las opciones de Bundler como - vendedor de algo que no recuerdo.



Por ahora, lo que he hecho es deshabilitar los requisitos de gemas en gemspec cuando se establece una variable de entorno dada, luego en el Gemfile, agrego una definición de gema que apunta a mi sistema de archivos local.

Escribí sobre todo mi flujo de trabajo aquí: http://numbers.brighterplanet.com/2010/07/28/bundler-to-the-max/ Nota: también uso joyero, lo que complica mucho las cosas.