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
Foi útil?

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
scroll top