Как запустить новые рельсы .. изнутри двигателя

У меня есть движок rails, который предоставляет команду myengine create. Эта команда создает полноценное приложение Rails с уже интегрированным в него myengine. Команда вызывает rails new ... для создания приложения. Все работает нормально, пока я выполняю эту команду вне папки двигателя. Однако, если я выполню ее внутри папки движка, она сломается, потому что она запускает команду bin/rails внутри движка вместо обычной команды rails, установленной в системе. bin/rails внутри папки двигателя настроен для работы с двигателями, поэтому у него нет команды rails new.

Я пытаюсь написать автоматические тесты, которые запускают команду myengine create из движка для проверки вывода. Однако, если я нахожусь внутри каталога двигателя, вызов rails new завершается ошибкой.

Я пытался указать точную команду rails, например "/home/me/.rvm/gems/ruby-2.3.1/bin/rails new ...", но это не работает.

Единственный обходной путь, который мне удалось придумать, — собрать приложение вне папки движка, используя метод Dir.chdir или inside Тора. Я могу протестировать его там или даже переместить только что созданную папку приложения обратно в мою папку spec/. Это работает, но кажется неряшливым. Должен быть какой-то способ сгенерировать новый внутри движка.


person CodeSmith    schedule 18.08.2016    source источник


Ответы (1)


Если кто-то еще столкнется с этим, я закончил тем, что улучшил свою команду, чтобы переименовать bin/rails во временное новое имя, прежде чем он попытался запустить rails new. Затем команда переименовала его обратно после завершения rails new.

person CodeSmith    schedule 19.09.2016