title: How to understand nil vs. empty vs. blank in Ruby
body: <p>I find myself repeatedly looking for a clear definition of the differences of <code>nil?</code>, <code>blank?</code>, and <code>empty?</code> in Ruby on Rails.  Here's the closest I've come:</p>
  
  <ul>
  <li><p><code>blank?</code> objects are false, empty, or a whitespace string. For example, <code>""</code>, <code>" "</code>, <code>nil</code>, <code>[]</code>, and <code>{}</code> are blank.</p></li>
  <li><p><code>nil?</code> objects are instances of NilClass.</p></li>
  <li><p><code>empty?</code> objects are class-specific, and the definition varies from class to class. A string is empty if it has no characters, and an array is empty if it contains no items.</p></li>
  </ul>
  
  <p>Is there anything missing, or a tighter comparison that can be made?</p>