43 votes

Comment invoquer une tâche Capistrano d'une autre?

Comment invoquer une tâche Capistrano d'une autre?

Par exemple:

 task :foo do
  # stuff
end

task :bar do
  # INVOKE :foo
end
 

98voto

Ain Tohvri Points 1125

Pour mémoire: dans le Capistrano 3, utilisez invoke() , par exemple

 desc "Task that does something"
task :do_something do
  invoke 'namespace:task'
end
 

Plus à l' adresse https://github.com/capistrano/capistrano#before--after

35voto

mpapis Points 32015

Vous pouvez le faire en utilisant un espace de noms:

 namespace :test do
  task :one do
  end
  task :two do
    test.one
    #or just directly call it:
    one
  end
end
 

Faites juste attention au nom que vous utilisez pour ne pas écraser une fonction importante.

5voto

tadman Points 70178

En général, vous le faites en définissant des dépendances:

 before :bar, :foo
 

2voto

andi Points 123

vous pouvez aussi utiliser Rake::Task["namespace:task"].invoke , cela fonctionne

1voto

troelskn Points 51966

Si la tâche réside dans un autre espace de nom, vous pouvez utiliser find_and_execute_task place.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X