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 false ? You would overwrite it because both cases nil (i.e. nothing set) and false would evaluate to false 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 … 😀

Joomla! Wold Conference 2012 Keynote: Changing the world with Open Source

Pascal Finette gave a great keynote at Joomla! World Conference 2012 talking about how Mozilla came to be and what they learned along the way. He shares insights on how to build a competitive product, a healthy community and maybe even a business around it, but developing and governing it the open source way.