Szukam sposobu, aby móc sprawdzić, czy pewne zadanie rake istnieje z Rakefile. Mam zależność od zadania, które chcę dołączyć jako zależność, jeśli to zadanie jest dostępne. W tym konkretnym przypadku zadanie jest dostępne tylko w projekcie Rails, ale chcę, aby moje zadania rake'a działały również w bardziej ogólnym środowisku aplikacji Ruby (nie tylko w Railsach).Sprawdź, czy zadanie rake istnieje z poziomu Rakefile
chcę zrobić coś takiego:
if tasks.includes?('assets:precompile')
task :archive => [:clean, :vendor_deps, 'assets:precompile']
...
end
else
task :archive => [:clean, :vendor_deps]
...
end
end
Jaki jest najlepszy sposób, aby warunkowo zawierać zależność zadania w zadaniu nachylenia?
Wybrać odpowiedź @ Doon ze względu na dokładniejsze wyjaśnienie. – conorliv
Wystarczająco fair. Po prostu bądź ostrożny przy użyciu 'invoke', ponieważ nie działa on tak samo, jak zależności. Zawsze będzie uruchamiać zadanie rake, natomiast w przypadku zależności uruchomi tylko zadanie rake, jeśli jeszcze nie zostało uruchomione. – Shadwell
@Shadwell, nie wywołuje zrobić tylko w razie potrzeby, podczas gdy wykonanie działa niezależnie? W pierwszym przykładzie powinien go wywołać, a jeśli nie został już wykonany, zostanie wykonany. Jeśli tak było, to nadal będzie wywoływać, ale nie wykonywać. Gdybym tego potrzebował, prawdopodobnie byłby to ostatni przykład, że jest bardziej przydatny/ogólny, jak sądzę. – Doon