Ruby "foo = true si! Definido? foo "no funcionará como se esperaba
Cuando de hecho no está definido, obtiene el valornil
solo porque fue "tocado":
$ irb
ruby-1.9.2-p0 > foo = true if !defined? foo
=> nil
ruby-1.9.2-p0 > foo
=> nil
ruby-1.9.2-p0 > if !defined? bar
ruby-1.9.2-p0 ?> bar = true
ruby-1.9.2-p0 ?> end
=> true
ruby-1.9.2-p0 > bar
=> true
entonces elif
...end
funciona como se esperaba, perofoo = true if ...
no lo hace