Does ruby stop evaluating if statements when first condition is false?
<p>Does ruby stop evaluating if statements when first condition is false? I constantly get <code>undefined method `ready' for nil:NilClass&gt;</code> if <code>song = nil</code>. </p>

<pre><code>    if !song.nil? &amp;&amp; song.ready &amp;&amp; !song.has_been_downloaded_by(event.author)
      song.send_to_user(event.author)
      nil
    elsif !song.ready
      "The song is not ready yet. Try again once it is."
    elsif song.has_been_downloaded_by(event.author)
      "Yo, check your private messages, I've already sent you the song."
    else
      'Song with such index does not exist.'
    end
</code></pre>