Dado algo como:
namespace :my_tasks do
task :foo do
do_something
end
task :bar do
do_something_else
end
task :all => [:foo, :bar]
end
Como faço para tornar :all
a tarefa padrão, para que a execução rake my_tasks
a chame (ao invés de ter que chamar rake my_tasks:all
)?
Respostas:
Coloque-o fora do namespace como este:
Além disso ... se suas tarefas exigem argumentos:
Observe como no segundo exemplo você pode chamar a tarefa com o mesmo nome do namespace, ou seja, 'my_tasks'
fonte
rake all
. Nesse caso, tenho outros namespaces, então o que desejo é poder chamar a tarefamy_tasks:all
comorake my_tasks
, não comorake all
.Não é muito intuitivo, mas você pode ter um namespace e uma tarefa com o mesmo nome, e isso efetivamente fornece o que você deseja. Por exemplo
Agora você pode executar comandos como,
e
fonte
task :my_task => ['my_task:foo', 'my_task:bar']
Eu sugiro que você use isso se tiver muitas tarefas no namespace.
E então você pode executar todas as tarefas no namespace:
Com isso, você não precisa se preocupar em alterar sua tarefa: all ao adicionar novas tarefas a esse namespace.
fonte
Eu uso este Rakefile para pepino:
Então, se eu digitar apenas:
Ele executa a tarefa padrão, que executa testes rápidos e lentos.
Eu aprendi isso de blog de Cheezy .
fonte
A maneira como estou lendo a pergunta de obvio171 é que ele está pedindo 1) uma maneira sistemática de invocar uma determinada tarefa em um namespace invocando o namespace como uma tarefa.
Freqüentemente encontrei a mesma necessidade. Gosto de agrupar tarefas logicamente em namespaces. Freqüentemente, esse agrupamento se assemelha a uma hierarquia. Portanto, o desejo de invocar o grupo faz muito sentido para mim.
Aqui está minha opinião:
1) ... ou estava perguntando, anos atrás. No entanto, uma questão ainda interessante.
fonte
Adicione a seguinte tarefa fora do namespace:
Lembre-se de que você pode ter uma tarefa com o mesmo nome do namespace.
E aqui está um exemplo maior, que mostra como você pode fazer uso de tarefas, que têm o mesmo nome do namespace, mesmo ao aninhar namespaces:
Apenas copie e experimente.
fonte
Baseado na solução de Rocky, tarefa padrão para namespace em Rake
E a resposta deste dexter. Existe uma maneira de saber a tarefa de rake atual?
fonte
Combinando as respostas de Szymon Lipiński e Shyam Habarakada, aqui está o que eu considero a resposta mais idiomática e consistente:
permite que você faça
rake my_tasks
, evitando a invocação complicada das subtarefas.fonte