Fazer tudo? e qualquer? garantir avaliação de curto-circuito?

Testando algum código em ambospry eirb, Obtenho os seguintes resultados:

[1] pry(main)> a = [1, 3, 5, 7, 0]
=> [1, 3, 5, 7, 0]
[2] pry(main)> a.any? {|obj| p obj; 3 / obj > 1}
1
=> true
[3] pry(main)> a.all? {|obj| p obj; 3 / obj > 1}
1
3
=> false

Em[2] e[3] Vejo que parece haver uma avaliação de curto-circuito que aborta a iteração o mais rápido possível, mas esse comportamento é garantido? Ao ler a documentação, não há menção a esse comportamento. Eu percebo que eu posso usarinject em vez disso, iterar-se-á sobre tudo, mas estou interessado em descobrir qual é a visão oficial do Ruby.

questionAnswers(2)

yourAnswerToTheQuestion