Как я могу использовать пространство имен в зависимости от задачи Rake?
При определении задач рейка можно использовать пространства имен, например:
namespace :demolition do
task :fire_bazooka do
puts "kaboom!"
end
end
Это можно назвать как rake demolition:fire_bazooka
.
Также можно указать предварительные условия для задачи, например:
# Single prerequisite
task :fire_bazooka => :load_bazooka do ....
# Multiple prerequisites
task :fire_bazooka => [:safety_check, :load_bazooka]
Но как я могу использовать задачу с именами в качестве предпосылки? Это, очевидно, не работает:
task :photograph_destruction => :demolition:fire_bazooka
Ответы
Ответ 1
Вы уже нашли решение (имя как строка).
Вы можете продлить этот ответ. Нет необходимости определять пространства имен и задачи с символами. Вы можете использовать строки.
Выполняя это, у вас есть преимущество одного и того же типа для определения и использования имен задач.
Ваш пример выглядит следующим образом:
namespace 'demolition' do
task 'fire_bazooka' do
puts "kaboom!"
end
end
task 'photograph_destruction' => "demolition:fire_bazooka" do
puts "snapping pics! yay!"
end
Ответ 2
Вычислено
Вам просто нужно указать имя как строку, например:
task :photograph_destruction => "demolition:fire_bazooka" do
puts "snapping pics! yay!"
end
Update
Как указывали @mikeycgto и @mipadi, также будет работать цитируемый символ (обратите внимание на ведущий :
):
task :photograph_destruction => :'demolition:fire_bazooka' do
puts "snapping pics! yay!"
end