fswatch를 사용하여 Rails 스크립트 감시자/실행자 빌드
4304 단어 rails
이것은 잘 작동하지만 지루하고 최적화할 수 있습니다.
Rails 러너(rails r)를 사용하면 애플리케이션 환경의 컨텍스트 내에서 루비 스크립트를 실행할 수 있습니다.
예를 들어, 이름이
runme.rb
인 루비 파일이 있고 그 안에 디버깅 코드가 있는 경우:puts Member.count
rails runner runme.rb
를 사용하여 해당 스크립트를 실행할 수 있습니다. 이것은 좋지만 파일을 수정할 때마다 터미널로 돌아가야 합니다. 이것을 자동화할 수 있다면 어떨까요?fswatch은 교차 플랫폼 파일 변경 모니터입니다. 지정한 파일을 감시한 다음 변경 시 스크립트를 실행합니다.
이 파일이 변경될 때 자동으로 실행되도록 Rails 앱 내에서 스크립트를 설정해 보겠습니다.
fswatch 설치
fswatch를 설치하는 것은 쉽습니다. Mac에서는 다음을 실행할 수 있습니다.
$ brew install fwatch
감시자 스크립트 설정
bin/console-runner
에서 실행 가능한 bash 스크립트를 만들었습니다.#!/bin/bash
usage() {
echo "Watch a ruby script and use Rails runner each time it changes"
echo ""
echo "For example, you may have a file called \`runme.rb\` that you would"
echo "run using Rails runner (e.g. \`rails runner runme.rb\`). This script"
echo "will watch the file and run it each time there is a change."
echo ""
echo "Usage:"
echo " ./script/console-runner <ruby-script>"
}
if [ $# -eq 0 ]; then
usage
exit 1
else
fswatch -0 -o $1 | xargs -0 -n1 -I{} rails runner $1
fi
스크립트를 실행 가능하게 만드십시오.
$ chmod +x bin/console-runner
다음 명령을 실행하여 스크립트 문서를 테스트할 수 있습니다.
$ ./bin/console-runner
Watch a ruby script and use Rails runner each time it changes
For example, you may have a file called `runme.rb` that you would
run using Rails runner (e.g. `rails runner runme.rb`). This script
will watch the file and run it each time there is a change.
Usage:
./bin/console-runner <ruby-script>
볼 콘솔 스크립트 만들기
다음으로 Rails 앱의 루트 폴더에
runme.rb
라는 파일을 만들었습니다.puts Member.count
puts Rails.env
스크립트 실행
마지막으로 스크립트를 실행할 수 있습니다.
./bin/console-runner runme.rb
성공! 이제
runme.rb
를 수정할 때마다 스크립트가 다시 실행됩니다.
Reference
이 문제에 관하여(fswatch를 사용하여 Rails 스크립트 감시자/실행자 빌드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/coderberry/build-a-rails-script-watcherrunner-using-fswatch-3m5j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)