Testing for empty or nil-value string

ruby, ruby-on-rails

Solution

The second clause does not need a `!variable.nil?` check—if evaluation reaches that point, `variable.nil` is guaranteed to be false (because of short-circuiting).

This should be sufficient:

variable = id if variable.nil? || variable.empty?

If you're working with Ruby on Rails, `Object.blank?` solves this exact problem:

An object is blank if it’s false, empty, or a whitespace string. For example, `""`, `" "`, `nil`, `[]`, and `{}` are all blank.

Problem

I'm trying to set a variable conditionally in Ruby. I need to set it if the variable is nil or empty (0 length string). I've come up with the following: ``` variable = id if variable.nil? || (!variable.nil? && variable.empty?) ``` While it works, it doesn't seem very Ruby-like to me. Is the a more succinct way of expressing the above?

Original source

Related problems