J'ai plusieurs tâches de construction de râteau.Éviter la duplication lors de la définition des propriétés de la tâche dans Rake tasks
Ils ont chacun des propriétés d'entrée/sortie uniques, mais la majorité des propriétés que je définis sur les tâches sont les mêmes à chaque fois. Actuellement, je fais ce que par simple répétition comme ceci:
task :buildThisModule => "bin/modules/thisModule.swf"
mxmlc "bin/modules/thisModule.swf" do |t|
t.input = "src/project/modules/ThisModule.as"
t.prop1 = value1
t.prop2 = value2 ... (And many more property=value sets that are the same in each task)
end
task :buildThatModule => "bin/modules/thatModule.swf"
mxmlc "bin/modules/thatModule.swf" do |t|
t.input = "src/project/modules/ThatModule.as"
t.prop1 = value1
t.prop2 = value2 ... (And many more property=value sets that are the same in each task)
end
Dans mon habitude de programmation headspace j'attendre de pouvoir sortir la population des propriétés de tâche récurrente à une fonction réutilisable.
Existe-t-il une analogie de râteau pour cela? D'une certaine manière je peux avoir une seule fonction où les propriétés partagées sont définies sur n'importe quelle tâche? Quelque chose d'équivalent à:
task :buildThisModule => "bin/modules/thisModule.swf"
mxmlc "bin/modules/thisModule.swf" do |t|
addCommonTaskParameters(t)
t.input = "src/project/modules/ThisModule.as"
end
task :buildThatModule => "bin/modules/thatModule.swf"
mxmlc "bin/modules/thatModule.swf" do |t|
addCommonTaskParameters(t)
t.input = "src/project/modules/ThatModule.as"
end
Merci.
======
En réponse à SR:
Merci Stephen,
Il me manque évidemment quelque chose - j'ai:
desc 'Compile run the test harness'
unit :test do |t|
populate_test_task(t)
end
def populate_test_task(t)
t.source_path << "support"
t.prepended_args = '+configname=air -define+=CONFIG::LocalDebug,true'
end
I J'ai essayé de définir la fonction immédiatement après la tâche (il n'y a pas d'espace de nommage: dans ce fichier) et juste à la fin du fichier après la dernière tâche, et j'obtiens "la méthode non définie` populate_test_task 'pour m ain: Object "- ce qui me semble ne pas trouver la fonction.
Qu'est-ce qui me manque?
Merci Stephen, Je suis évidemment manque quelque chose - j'ai: desc 'Compile exécuter le faisceau de test' unité : essai do | t | populate_test_task (t) fin def populate_test_task (t) t.source_path << "support" t.prepended_args = '+ configname = -define air + = :: LocalDebug CONFIG, true' fin J'ai essayé de définir la fonction immédiatement après la tâche (il n'y a pas d'espace de noms: dans ce fichier) et juste à la fin du fichier après la dernière tâche, et je reçois "méthode non définie' populate_test_task 'pour main: Objet "- qui semble moi comme ça ne trouve pas la fonction. Qu'est-ce qui me manque? – Stray
Ug. Le formatage des commentaires est si ennuyeux. Ajouté au bas de mon Q à la place. – Stray
Hi Stray, je ne suis pas familier avec l'unité: test do | t | ligne - d'où est-ce? – stephenr