Você já quis se proteger contra a execução acidental de uma tarefa crítica de rake? Em caso afirmativo, comece criando uma tarefa de confirmação:
task :confirm do
confirm_token = rand(36**6).to_s(36)
STDOUT.puts "Confirm [ACTION]? Enter '#{confirm_token}' to confirm:"
input = STDIN.gets.chomp
raise "Aborting [ACTION]. You entered #{input}" unless input == confirm_token
end
Claro, substitua [ACTION]
por algo relevante (ou genérico). Essa implementação gera uma string aleatória de 6 caracteres que você precisará inserir antes de continuar.
Você pode usá-lo chamando-o antes de suas próprias tarefas:
task :deploy_to_production => :confirm do
...
end
Suas tarefas críticas de rake agora estão protegidas de você!