Testing for existence with “blank?”

I know, I know, all ruby posts should be about slightly new takes on testing paradigms or other amazing best practices, but sometimes I think we skip the basiscs. Today it’s blank?.

ActiveSupport, the Rails extensions to ruby’s standard library introduce the method blank?. It’s pretty handy, and I think people tend to take it for granted without realizing exactly what its semantics are. blank? is handy if you want to treat an empty string, array, or hash as false.

Here’s a slightly haphazard table showing nil?, empty?, and blank? all work.

Input nil? empty? blank?
” “ FALSE FALSE TRUE
nil TRUE ERROR TRUE
1 FALSE ERROR FALSE
0 FALSE ERROR FALSE
“hi” FALSE FALSE FALSE
[] FALSE TRUE TRUE
[ [] ] FALSE FALSE FALSE
[ nil ] FALSE FALSE FALSE
[ 1 ] FALSE FALSE FALSE
true FALSE ERROR FALSE
false FALSE ERROR TRUE
{} FALSE TRUE TRUE
{1=>2} FALSE FALSE FALSE

So if you want a flexible way of testing whether something exists, blank? will often give you what you want. I’m sure that was just thrilling!

1 Comment

Filed under Uncategorized

One response to “Testing for existence with “blank?”

  1. Yeap, thanks fot article. “present?” also nice method🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s