Default Values for Boolean Options in Ruby

Let’s say you read settings from a YAML file and have some sort of settings object. Then you check if certain options are set with custom values or you have to set default/fall-back values on them. If you are dealing with Boolean options you have to be careful … as I had to find out myself.

Initially you would probably do something like the following to set a default value on a Boolean option:

Do you see the problem? What happens if the option was deliberately set to

? You would overwrite it because both cases
(i.e. nothing set) and
would evaluate to
in the context of the
operator and you would in both cases assign the right hand value (and overriding an explicit user choice in one case) … *ouch*.

So the correct solution is something like the following:

Just be careful … 😀

Leave a Reply

Your email address will not be published. Required fields are marked *