title: Do all? and any? guarantee short-circuit evaluation?
body: <p>Testing out some code in both <code>pry</code> and <code>irb</code>, I get the following results:</p>
  
  <pre><code>[1] pry(main)&gt; a = [1, 3, 5, 7, 0]
  =&gt; [1, 3, 5, 7, 0]
  [2] pry(main)&gt; a.any? {|obj| p obj; 3 / obj &gt; 1}
  1
  =&gt; true
  [3] pry(main)&gt; a.all? {|obj| p obj; 3 / obj &gt; 1}
  1
  3
  =&gt; false
  </code></pre>
  
  <p>In <code>[2]</code> and <code>[3]</code> I see that there appears to be short-circuit evaluation that aborts the iteration as soon as possible, but is this guaranteed behaviour? Reading the documentation there is no mention of this behaviour. I realise that I can use <code>inject</code> instead as that will iterate over everything, but I'm interested in finding out what the official Ruby view is.</p>