У меня есть куча задач по построению граблей.
У каждого из них есть уникальные входные/выходные свойства, но большинство свойств, которые я устанавливаю для задач, каждый раз одинаковы. В настоящее время я делаю это с помощью простого повторения, например:
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
В моем обычном свободном пространстве программирования я ожидаю, что смогу разбить совокупность свойств повторяющихся задач на повторно используемую функцию.
Есть ли аналогия с граблями для этого? Каким-то образом у меня может быть одна функция, в которой общие свойства устанавливаются для любой задачи? Что-то эквивалентное:
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
Спасибо.
======
В ответ на СР:
Спасибо, Стивен,
Я явно что-то упускаю - у меня есть:
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
Я попытался определить функцию сразу после задачи (в этом файле нет пространства имен) и прямо в конце файла после последней задачи, и я получаю "неопределенный метод `populate_test_task' для main:Object" - мне кажется, что он не находит функцию.
Что мне не хватает?