title: Does ruby stop evaluating if statements when first condition is false?
body: <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>