Tengo un motor de rieles que expone un comando llamado myengine create
. Ese comando genera una aplicación completa de Rails con myengine
Ya integrado en él. El comando llama rails new ...
Para generar la aplicación. Todo funciona bien mientras ejecuto este comando. fuera de de la carpeta del motor. Sin embargo, si lo ejecuto dentro de la carpeta del motor, se rompe porque ejecuta el bin/rails
comando dentro del motor, en lugar del regular rails
Comando que está instalado en el sistema. los bin/rails
dentro de la carpeta del motor está configurado para funcionar con motores para que no tenga una rails new
mando.
Estoy tratando de escribir pruebas automatizadas que ejecutan el myengine create
comando desde dentro del motor para validar la salida. Si estoy en algún lugar dentro del directorio del motor, llamando rails new
falla
He intentado especificar la exacta rails
comando como "/home/me/.rvm/gems/ruby-2.3.1/bin/rails new ..."
, pero esto no funciona.
La única solución que he podido encontrar es compilar la aplicación fuera de la carpeta del motor usando Dir.chdir
o Thor "s inside
método. Puedo probar contra eso allí, o incluso mover la carpeta de la aplicación recién generada a mi spec/
carpeta. Funciona, pero se siente descuidado. Debe haber alguna forma de generar una nueva desde el interior de un motor.
Respuestas
0 para la respuesta № 1Si alguien más se encuentra con esto, terminé mejorando mi comando para cambiar el nombre bin/rails
a un nuevo nombre temporal antes de que intentara ejecutarse rails new
. A continuación, el comando cambió su nombre de nuevo una vez rails new
terminado.