title: Why does Date exist in Ruby before it is required?
body: <p>In Ruby, I'd expect that a class which has not been required would raise an "uninitialized constant" error. This is the case with <code>CSV</code>, for instance.</p>
  
  <p>However, <code>Date</code> behaves strangely: it is available, but apparently does not work, until it is required.</p>
  
  <pre><code>~: irb                                                                                             
  &gt;&gt; Date.new(2012,7,24)
  ArgumentError: wrong number of arguments(3 for 0)
  &gt;&gt; require 'date'
  =&gt; true
  &gt;&gt; Date.new(2012,7,24)
  =&gt; #&lt;Date: 2012-07-24 ((2456133j,0s,0n),+0s,2299161j)&gt;
  </code></pre>
  
  <p>What explains this behavior?</p>