2011-04-27 20 views
12

que se bifurcó el repositorio spree en github y me gustaría especificar en el Gemfile de mis rieles APP una joya que se encuentra en el subdirectorio del core repositorio principalComo especificar en Gemfile un .gemspec situado en un subdirectorio de un repositorio Git

La estructura de carpetas del repositorio es el siguiente:

|~spree     [git root] 
| |-spree.gemspec   [spree gem located here] 
|~core 
| |-spree_core.gemspec [spree_core gem located here] 

En otras palabras, me gustaría hacer algo en este sentido:

gem 'spree-core', :git => 'git://github.com/spree/spree.git' 

El problema es que me estoy haciendo el siguiente mensaje de error cuando intento bundle install:

No se pudo encontrar gem 'spree-core (> = 0)' en git://github.com/spree/spree.git (en el maestro). origen no contiene ninguna versión de 'juerga de núcleos (> = 0)'

Respuesta

5

Lo que puede hacer es crear un acuerdo de recompra que sólo contiene el core subdirectorio y archivo asociado spree_core.gemspec. Esto conducirá a una instalación más delgada también. También puede tomar el contenido del directorio para empaquetar con su aplicación y distribuir así:

gem 'spree-core', :path => 'vendor/gems/spree/core' 

aparece La capacidad de bundler instalar desde un repositorio git a ser algo limitado según the documentation donde se está a la espera spree_core/spree_core.gemspec y no core/spree_core.gemspec en su lugar.

Este descuido por parte del creador de gemas es común ya que la mayoría no espera que las personas instalen nada más que la gema oficialmente publicada. Al menos es bueno que el archivo .gemspec esté disponible, ya que algunos proyectos ni siquiera incluyen eso para consternación de muchos.

4

Esto me ocurrió por primera vez en una búsqueda en Google y la respuesta dada, o bien nunca fue correcta o Bündler ha cambiado su comportamiento.

En el OP se produjo un error de ortografía y el error parece consistente con la causa de los problemas originales. Específicamente spree-core no debería haber sido dividido en guiones.

El siguiente debería funcionar bien:

gem 'spree_core', github: 'spree/spree' 
Cuestiones relacionadas