Хотя документация на это действительно тонкая, $! устанавливается как последнее исключение, которое возникает, и после вызова exit () это исключение SystemExit. Соединяя эти два, вы получите:
at_exit do
if ($!.success?)
print 'Success'
else
print 'Failure'
end
end