У меня есть файл рейк настроить таким образом:Rake задача вне пространства имен
require 'rake'
namespace :setup do
puts "I'm in setup"
task :create do
puts "I'm in create"
end
end
task :run do
puts "I'm in run"
end
Если я бегу rake setup:create
я получаю ожидаемый:
I'm in setup
I'm in create
Однако, если я бегу rake run
я получаю:
I'm in setup
I'm in run
Из того, что я могу сказать in the guides, это неожиданно, как указано здесь:
При поиске имени задачи, рейк начнется с текущего пространства имен и попытается найти там имя. Если он не найдет имя в текущем пространстве имен, он будет искать родительские пространства имен до тех пор, пока не будет найдено совпадение (или возникнет ошибка, если нет совпадения).
Не предполагал, что грабли начнутся в текущем пространстве имен, а затем перейдут к поиску чего-либо. В моем примере я не предоставляю текущий файл имен, но он перескакивает на setup
, хотя все, что я дал, было run
.
Что мне не хватает?
Понял - спасибо матовый, имеет смысл. – Anthony