I found a good explanation here:
nil? tests whether the object is
exactly nil, that is whether it is the
one and only want instance of
NilClass.
empty? is a method some objects
respond to. You need to check the
documentation for each case. For
example, and empty array is one that
is not nil (it is an array right?) and
has no elements. An empty string is
one that is not nil (it is a string
right?) and has no bytes, nothing.
The blank? method you ask for does not
belong to Ruby, it is a Rails
extension:
http://api.rubyonrails.com/classes/Object.html#M000011.
If you click through to the link at the end of that post you will find that the blank?
method simply combines the nil?
and empty?
method calls.