2012-06-24 17 views
5

Il mio obiettivo è creare una protezione personalizzata semplice con Guard. L'installazione gem e l'installazione di bundler per la mia app sono andate bene. My Guardfile contiene:Come creare un esempio di Guard molto semplice?

notification :growl 

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

Ok, prossimo, ho bisogno di dire alla Guardia cosa fare quando accade una partita. Ma non so dove farlo. (In questo caso, voglio vedere la mia domanda per le modifiche ed eseguire codice arbitrario. Si supponga che non c'è un guard available for what I want. Voglio imparare a farlo anche io.)

In puro 'gaffe e vedere cosa errori di pop-up stile prossimo', quando corro guard ricevo questo messaggio di errore:

 
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' 

Quindi, che mi dà un suggerimento che ho bisogno di creare un file guard/eyeball.rb. Può essere? Ma come avrei dovuto saperlo dalla documentazione?

Ho letto (molte volte) il molto dettagliato e utile Guard README ma non ho trovato un buon esempio semplice che mostra a qualcuno come fare 'solo le basi' di scrivere la propria guardia. Inaspettatamente, RailsCasts non ha nemmeno risposto alla mia domanda: vedi RailsCast #264 Guard.

Ho trascurato qualcosa nello Guard README? Potete aiutare o indicare un buon esempio? Grazie!

+1

Probabilmente è meglio guardare la fonte per alcune delle guardie disponibili e imparare da loro. –

+0

Grazie Andrew. Ho guardato un esempio proprio per questa ragione. Tuttavia, non ero sicuro di dove mettere i file se non volessi comprimerli come un gioiello. –

risposta

5

Dolce! Ho appena trovato una pagina Wiki sul wiki di Guard dal titolo Create a guard che risponde alle mie domande. Non è stato menzionato nel README, quindi ho dovuto scavare per questo.

+0

Grazie a [un recente impegno di guardia] (https://github.com/guard/guard/commit/560515a2e1244da7bb21b08a86a8239a93c96669) il README è stato aggiornato con queste informazioni. –

+0

Grazie per aver messo tutto questo impegno in un self-post; gradito – iono