Pregunta

¿Cómo especificar dependencias de gemas de manera que el usuario con solo ruby, rake y rubygems instalados pueda emitir un solo comando de rake para instalar todas las dependencias requeridas? ¿Es posible usar la misma especificación de dependencia al construir gemas con GemBuildTask?

¿Fue útil?

Solución

En realidad, es bastante fácil configurar una tarea de rastrillo que instala un montón de gemas:

task :install_gems do
  require "rubygems"
  require "rubygems/dependency_installer"

  installer = Gem::DependencyInstaller.new

  [["rack"], ["merb-core", "1.0.12"]].each do |args|
    installer.install(*args)
  end
end

Por supuesto, podría extraer esto en un método y escribir una forma más bonita para especificar sus dependencias, pero esto debería funcionar muy bien.

Otros consejos

Creo que actualmente tendría que escribir una tarea de rastrillo personalizada que hablara con la biblioteca Gem.

Es posible que rip , el (muy) nuevo chico en el bloque, lo logre todo más fácil, pero es muy temprano.

Pero alguien más puede tener una mejor manera ...

Si su aplicación está empaquetada como una gema, puede agregar las dependencias a gemspec y rubygems intentará instalarlas cuando instale la gema.

Hay muchas maneras de hacer una gema con algún código ruby. Recientemente he empezado a usar joyero .

Con él, puede instalar un proyecto como una gema ejecutando rake install . Hay algunas instrucciones sobre cómo hacer dependencias en su wiki de github.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top