2013-07-04 2 views
0

동일한 프로젝트에서 여러 대의 컴퓨터에서 Guard를 사용하려고합니다.Guardfile DSL - 사이트 관련 설정을 만드는 방법

하나의 기계가 OSX입니다. 다른 컴퓨터의 개발자는 이맥스 알림을 원합니다. 필자는 tmux 알림과 emacs 알림을 개인적으로 싫어하지만 터미널 제목과 libnotify 팝업을 정말 좋아합니다.

Dir.glob("./Guardfile-site-*").each { |file| include file } 

단순히 포함 :

notification :libnotify, :timeout => 5, :transient => true, :append => false, :urgency => :critical 

그런 다음 /Guardfile-site-myname-home-dev .gitignore

에 파일을 추가

나는 내 Guardfile의 시작 부분에 추가 할 때 내가 영리한 줄 알았는데

불행히도 그 수율은

[1] guard(main)> 01:21:38 - ERROR - Invalid Guardfile, original error is: 
> [#] undefined method `include' for #<Guard::Dsl:0x000000037e5920> 

Guard에서 매번 수동으로 재구성하지 않고이 작업을 수행하는 "올바른 방법"은 무엇입니까?

환경 변수를 생각하고 있습니다. GUARD_NOTIFY에서 FALSE으로 설정하면 완전히 멈추지 만 원하는 것은 아닙니다.

답변

1

사용자 지정 설정을 ~/.guard.rb에 넣을 수 있습니다. Guard는 해당 파일의 내용을 Guardfile에 자동으로 추가합니다.

모든 프로젝트에서 동일한 구성을 사용하면 행복 할 것입니다.

프로젝트별로 설정을 조정해야하는 경우 기존 코드를 적용 할 수 있습니다. includeModule에있는 클래스 메소드가 있고 모듈 매개 변수를 사용하기 때문에 작동하지 않습니다. the way guard loads a Guardfile을 보면 다음과 같이 작동합니다.

Dir.glob("Guardfile-site-*").each { |file| config = File.read("#{File.dirname(__FILE__)}/#{file}"); instance_eval(config) }