Mam silnik szynowy, który wyświetla polecenie o nazwie myengine create
. To polecenie generuje pełną aplikację Railsową z myengine
już zintegrowane z nim. Komenda wywołuje rails new ...
wygenerować aplikację. Wszystko działa dobrze, dopóki wykonam to polecenie na zewnątrz folderu silnika. Jeśli jednak wykonam go w folderze silnika, psuje się, ponieważ uruchamia bin/rails
polecenie wewnątrz silnika, zamiast zwykłego rails
polecenie zainstalowane w systemie. The bin/rails
wewnątrz folderu silnika jest skonfigurowany do pracy z silnikami, więc nie ma rails new
dowództwo.
Próbuję napisać automatyczne testy, które uruchamiają myengine create
polecenie z silnika, aby sprawdzić poprawność danych wyjściowych. Jeśli jestem gdziekolwiek w katalogu silnika, dzwonię rails new
zawiedzie.
Próbowałem podać dokładne rails
polecenie jak "/home/me/.rvm/gems/ruby-2.3.1/bin/rails new ..."
, ale to nie działa.
Jedynym obejściem, jakie udało mi się wymyślić, jest zbudowanie aplikacji poza folderem silnika za pomocą Dir.chdir
lub Thor inside
metoda. Mogę tam przetestować, a nawet przenieść nowo wygenerowany folder aplikacji z powrotem do mojego spec/
teczka. Działa, ale wydaje się niechlujny. Musi być jakiś sposób na wygenerowanie nowego z wnętrza silnika.
Odpowiedzi:
0 dla odpowiedzi № 1Jeśli ktoś inny na to wpadnie, skończyłem na ulepszaniu polecenia zmiany nazwy bin/rails
na tymczasową nową nazwę przed próbą uruchomienia rails new
. Następnie polecenie zmieniło jego nazwę raz rails new
zakończony.