Sto cercando un modo per poter verificare se esiste una determinata attività di rake all'interno del Rakefile. Ho una dipendenza di attività che voglio solo includere come dipendenza se quell'attività è disponibile. In questo caso particolare, l'attività è disponibile solo in un progetto Rails, ma voglio che le mie attività rake funzionino anche in un ambiente di applicazioni Ruby più generale (non solo Rails).Verifica se esiste rake task all'interno di Rakefile
voglio fare qualcosa di simile:
if tasks.includes?('assets:precompile')
task :archive => [:clean, :vendor_deps, 'assets:precompile']
...
end
else
task :archive => [:clean, :vendor_deps]
...
end
end
Qual è il modo migliore per includere condizionalmente una dipendenza compito in un task rake?
Ho scelto la risposta di Doon a causa della spiegazione più approfondita. – conorliv
Abbastanza giusto. Basta fare un po 'attenzione con 'invoke' dato che non funziona come le dipendenze. Eseguirà sempre l'attività rake mentre con una dipendenza eseguirà solo l'attività rake se non è già stata eseguita. – Shadwell
@Shadwell, non invoca fare solo se necessario mentre execute lo esegue indipendentemente? Nel primo esempio dovrebbe richiamarlo e, se non è già stato eseguito, verrà eseguito. Se è stato esso invocherà ancora, ma non verrà eseguito. Se avessi bisogno di questo probabilmente solo l'ultimo esempio è più utile/generale, penso. – Doon