ruby-on-rails - software - ruby on rails windows 10
cómo especificar la ruta para la gema dependiente en el archivo gemspec? (2)
Creo que veo a lo que @ bor1s apuntaba en la publicación SO sobre referencias git.
El archivo gemspec
trata sobre las dependencias para publicar tu gema. Su Gemfile
configura su entorno local para el desarrollo, generalmente llamando a gemspec
.
En tu caso tu gemspec
debería tener esto
s.add_dependency "X"
Y luego su Gemfile
se vería algo así (asegúrese de que la referencia local esté después de la llamada gemspec
):
source "http://www.rubygems.org"
gemspec
gem "X", :path => "/Users/vikram/source/X"
Citando de la publicación de blog de Yahuda Katz sobre gemspec y Bundler
Si descubre que necesita desarrollar contra una gema que aún no ha sido liberada (por ejemplo, Rails a menudo se desarrolla contra gemas inéditas de Rack, Arel o Mail), puede agregar líneas individuales en el Gemfile que le dicen a bundler dónde encontrarlas. las gemas. Todavía utilizará las dependencias enumeradas en .gemspec para la resolución de la dependencia, pero ahora sabe exactamente dónde encontrar la dependencia durante el desarrollo de la gema.
source "http://www.rubygems.org"
gemspec
# if the .gemspec in this git repo doesn''t match the version required by this
# gem''s .gemspec, bundler will print an error
gem "rack", :git => "git://github.com/rack/rack.git"
No querrás incluir esta información en .gemspec, que finalmente se lanzará a Rubygems después de que la gema en desarrollo también haya sido lanzada. Nuevamente, esto hace que el sistema general sea más resistente, ya que no depende de URL externas transitorias. Esta información es puramente algo utilizado para configurar un entorno completo durante el desarrollo, que requiere cierta precisión.
He creado una gema (X) y no está publicada. Ahora estoy creando otra gema que agregará la gema X como una dependencia como esta:
s.add_dependency "X"
en el archivo gemspec.
dado que la gema (X) no está en rubygem o git o rubyforge, el comando de instalación del paquete arroja el error:
no pude encontrar la gema X **
Creo que especificar el camino para X hará el truco, pero ¿cómo?
Creo que puedes encontrar una respuesta para tu pregunta aquí: Gem dependency
Espero que ayude