tutorial software rails last ejemplos ruby-on-rails ruby-on-rails-3 rubygems

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