В моем проекте Rails у меня есть определенный список внешних файлов, которые я хочу обработать с помощью Rake. Моя цель - указать исходный каталог этих файлов в качестве аргумента следующим образом:
rake foofiles:process[vendor/sources]
В настоящее время я указываю имена файлов (и их относительные пути в исходном каталоге), используя FileList
, назначенный константе:
REQUIRED_FILES = FileList[
'blah.csv',
'subdir/something.csv',
'subdir/monkeys/foo.bar',
...
]
Как я могу добавить к каждому из этих файлов аргумент моего исходного каталога, чтобы я мог создать задачу, которая зависит от этих файлов, существующих в этом каталоге? (в идеале ничего бы не произошло, если бы не присутствовали все эти файлы)
Например, если бы я использовал команду rake
, как указано выше, мне нужно, чтобы моя задача зависела от vendor/sources/blah.csv, vendor/sources/subdir/something.csv, vendor/sources/subdir/monkeys/foo.bar
и т. д.
Изменить: добавление префикса к каждому элементу в массиве/списке относительно тривиально, я больше не понимаю, как структурировать свои задачи и их зависимости, чтобы я мог фактически получить доступ к аргументу исходной папки. Я предоставил, а затем использую новый добавленный список файлов в качестве зависимости для задачи обработки, которая фактически выполняет работу.
Основная вызываемая задача должна выглядеть примерно так, если мне нужен синтаксис, который я использовал вверху:
namespace :foofiles do
task :process, [:source_directory] => [???, my_newly_prepended_file_list] do |t, args|
# Do stuff
end
end
Но я не знаю, как предоставить аргумент :source_directory
задаче, которая выполняет добавление, а затем впоследствии вернуть список добавленных файлов задаче :process
в качестве зависимости.