Dans mon projet Rails, j'ai une liste spécifique de fichiers externes que je veux traiter en utilisant Rake. Mon objectif est d'être en mesure de spécifier le répertoire source de ces fichiers comme argument comme ceci:Rake: traitement de fichiers dans un répertoire source spécifié
rake foofiles:process[vendor/sources]
Actuellement, je suis en spécifiant les noms de fichiers (et leurs chemins relatifs dans le répertoire source) à l'aide d'un FileList
affecté à une constante:
REQUIRED_FILES = FileList[
'blah.csv',
'subdir/something.csv',
'subdir/monkeys/foo.bar',
...
]
Comment puis-je préfixer chacun de ces fichiers avec mon argument répertoire source afin que je puisse faire une tâche qui dépend de ces fichiers existants dans ce répertoire? (Idéalement rien ne se passerait sans tous ces fichiers étant présents)
Par exemple, si je la commande rake
comme tapé ci-dessus, je dois ma tâche dépendre vendor/sources/blah.csv, vendor/sources/subdir/something.csv, vendor/sources/subdir/monkeys/foo.bar
etc.
Edit: Ajouter un préfixe à chaque élément d'un tableau/liste est relativement trivial, je suis plus confus sur la façon de structurer mes tâches et leurs dépendances afin que je puisse accéder à l'argument du dossier source que j'ai fourni, puis utiliser le nouvelle liste de fichiers ajoutée en tant que dépendance pour la tâche de traitement qui effectue le travail.
La tâche principale est Invoqué va devoir ressembler à ceci si je veux la syntaxe je en haut:
namespace :foofiles do
task :process, [:source_directory] => [???, my_newly_prepended_file_list] do |t, args|
# Do stuff
end
end
Mais je ne sais pas comment fournir l'argument :source_directory
à une tâche Cela fait l'ajout de la liste des fichiers ajoutés à la tâche :process
en tant que dépendance.
Que voulez-vous dire par « je besoin de ma tâche à dépendre de fournisseurs/sources/blah.csv, fournisseur/sources/subdir/something.csv, fournisseur/sources/subdir/singes/foo. barre etc "? Vous voulez que ces fichiers soient passés en argument de votre tâche rake, ou parlez-vous de dépendances entre des tâches rake, ou quelque chose de complètement différent? –