rubi status de saída at_exit
Pergunta
posso determinar eus processar status de saída em at_exit bloco?
at_exit do
if this_process_status.success?
print 'Success'
else
print 'Failure'
end
end
Solução 2
usando ideia de Tadman
at_exit do
if $!.nil? || $!.is_a?(SystemExit) && $!.success?
print 'success'
else
code = $!.is_a?(SystemExit) ? $!.status : 1
print "failure with code #{code}"
end
end
Outras dicas
Embora a documentação sobre isso é realmente fino, $! está definido para ser a última exceção que ocorre, e depois de uma saída () chamar esta é uma exceção SystemExit. Colocar os dois juntos você receber esse:
at_exit do
if ($!.success?)
print 'Success'
else
print 'Failure'
end
end
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow