2012-06-24 15 views
5

Moim celem jest zbudowanie prostej niestandardowej osłony z Guard. Instalacja oprogramowania typu "klejnot" i instalacja pakietu dla mojej aplikacji poszła dobrze. My Guardfile zawiera:Jak zbudować bardzo prosty przykład Guard?

notification :growl 

guard 'eyeball' do 
    watch %r{^app/(.*)} 
    watch %r{^config/(.*)} 
    watch %r{^lib/(.*)} 
end 

Dobra, muszę powiedzieć Guardowi, co należy zrobić, gdy dojdzie do meczu. Ale nie wiem, gdzie to zrobić. (W tym przypadku chcę obejrzeć moją aplikację dla zmian i uruchomić dowolny kod. Załóżmy, że nie ma guard available for what I want. Chcę się nauczyć, jak to zrobić samodzielnie.)

Prawdziwe "pomyłka i zobacz co błędy pojawiają się następne”styl, kiedy biegnę guard otrzymuję komunikat o błędzie:

 
ERROR: Could not load 'guard/eyeball' or find class Guard::Eyeball 
ERROR: cannot load such file -- guard/eyeball 
ERROR: Invalid Guardfile, original error is: 
undefined method `new' for nil:NilClass 
ERROR: No guards found in Guardfile, please add at least one. 
Guard uses Growl to send notifications. 
Guard is now watching at '/Users/my-user-name/dev/my-project-name' 

SO, który daje mi wskazówkę, że trzeba utworzyć plik guard/eyeball.rb. Może? Ale skąd miałem to wiedzieć z dokumentacji?

Przeczytałem (kilka razy) bardzo szczegółowe i użyteczne Guard README, ale nie znalazłem dobry prosty przykład, który pokazuje, jak zrobić "tylko podstawy" pisania własnego strażnika. Niespodziewanie RailsCasts tak naprawdę nie odpowiedział na moje pytanie: zobacz RailsCast #264 Guard.

Czy przeoczyłem coś w Guard README? Czy możesz pomóc lub wskazać dobry przykład? Dzięki!

+1

Prawdopodobnie najlepiej jest spojrzeć na źródło niektórych dostępnych strażników i uczyć się od nich. –

+0

Dzięki Andrew. Z tego powodu przyjrzałem się przykładowi. Nadal nie byłem pewien, gdzie umieścić pliki, jeśli nie chcę ich pakować jako klejnot. –

Odpowiedz

5

Słodka! Właśnie znalazłem stronę Wiki na wiki strażnika o nazwie Create a guard, która odpowiada na moje pytania. Nie zostało to wspomniane w README, więc musiałem to poszukać.

+0

Dzięki [ostatnie commit straży] (https://github.com/guard/guard/commit/560515a2e1244da7bb21b08a86a8239a93c96669) README został zaktualizowany o te informacje. –

+0

Dzięki za wniesienie całego tego wysiłku do self-post; docenione – iono