/ / Cómo ejecutar "rieles nuevos .." desde el interior de un motor: rubí sobre rieles, rieles y motores

Cómo ejecutar "rails new .." desde dentro de un motor - ruby-on-rails, rails-engines

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 № 1

Si 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.