У меня есть куча задач по рейку.
Каждый из них обладает уникальными свойствами ввода / вывода, но большинство свойств, которые я задаю для задач, каждый раз одинаковы. В настоящее время я делаю это с помощью простого повторения, как это:
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
Спасибо.
======
В ответ на SR:
Спасибо, Стивен,
Я явно что-то упускаю - у меня есть:
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: «Объект» - мне кажется, что он не находит функцию.
Чего мне не хватает?