AFAIK, Rake поставляется с двумя типами задач: Rake::Task
, который выполняется безоговорочно, и Rake::FileTask
, который запускается только в том случае, если файл, который он назван в имени, не существует или является старше одного из его предварительных условий.Настройка «необходимо?» условие для задачи Rake
Есть ли обычный способ настроить логику, которая решает, должна ли выполняться задача? Например, если бы я хотел не только проверить существование файла, но и каким-то образом проверить его содержимое.
Я вижу, что метод Rake::Task#needed?
обрабатывает это, и переопределение этого в подклассе действительно работает. Но есть ли более идиоматический способ сделать это? Что-то, что было бы более целесообразно включить непосредственно в Rakefile
?
я себе что-то вроде этого:
need :process do
# Check if file is already processed
end
task :process do
# Process file in-place
end
который бы пропустить задание, если все его need
блоков возвращает истину.