2014-02-19 1 views
0

다른 프로젝트의 API에서 작동하는 레일즈 프로젝트에 루비가 있습니다. 개발과 테스트를 위해이 3 개의 다른 프로젝트를 실행해야하므로 가드를 시작할 때 이들을 실행하고 실행하려고합니다.Guard 콜백 내에서 번들러 작업 실행

서비스를 시작하는 쉘 스크립트가 있기 때문에 가드 콜백을 사용하여 실행했지만 쉘 스크립트 내의 일부 명령은 작동하지 않습니다. 예를 들어, 다른 레일 서버를 운영하는 것은 효과가 없습니다. 번들 환경이 다르기 때문에 아마도 실패 할 것이고, 번들 내에서 번들을 호출 할 것이다 (번들과 함께 가드가 실행된다).

서비스를 시작하기위한 다른 방법이 있습니까? 아니면 번들 내에서 번들을 실행할 수있는 방법이 있습니까? 이 도움이 될 경우 가드 콜백에서 쉘 스크립트를 실행하면 확인

답변

0

하지 않습니다,하지만 당신은 bundle exec

0

없이 경비를 시작하려고 할 수 있습니다, 당신은 Bundler.with_clean_env에 전화를 포장해야합니다. 예를 들어

:

Bundler.with_clean_env { system("./start_other_app.sh") } 

이 새 Bundler를 컨텍스트에서 다른 응용 프로그램을 실행할 수 있도록 Bundler를 내부적으로 사용하는 환경 변수를 지 웁니다.

자세한 내용은 http://bundler.io/v1.3/man/bundle-exec.1.html#Shelling-out을 참조하십시오.