Digamos que tengo un Rakefile así:Cómo fallar explícitamente una tarea en ruby rake?
file 'file1' => some_dependencies do
sh 'external tool I do not have control over, which sometimes fail to create the file'
???
end
task :default => 'file1' do
puts "everything's OK"
end
Ahora si pongo nada en lugar de ???, me sale el mensaje OK, incluso si la herramienta externa no puede generar archivo. ¿Cuál es la forma correcta de informar rake, esa tarea 'file1' ha fallado y debería abortar (con la esperanza de presentar un mensaje significativo, como qué tarea falló); el único pensamiento en el que puedo pensar ahora es presentar una excepción, pero eso simplemente no parece correcto.
P.S La herramienta siempre devuelve 0 como código de salida.
['fail'] (http://ruby-doc.org/core-2.0/Kernel.html#method-i-fail) es solo un alias de [' raise'] (http: // ruby- doc.org/core-2.0/Kernel.html#methodi-i-raise) – Stefan
Tienes razón. Actualicé mi respuesta para indicar esto. –
El enlace está roto. –