C'est simple, j'espère. Comment vérifier, dans l'exemple suivant, si une constante est déjà définie?
#this works
var = var||1
puts var
var = var||2
puts var
#this doesn't
CONST = CONST||1
puts CONST
CONST = CONST||2
puts CONST
=> 1
1
uninitialized constant CONST (NameError)
CONST = 2 unless defined? CONST
Voir ici pour en savoir plus sur génial defined?
opérateur.
P.S. Et à l'avenir, je suppose que vous voudrez var ||= 1
au lieu de var = var||1
.
pry> User.const_defined?("PER_PAGE")
=> true
pry> User.const_defined?("PER_PAGE123")
=> false
CONST ||= :default_value
ce qui précède fonctionne pour moi sur Ruby 1.9.3 mais échoue sur 1.8 ... eh bien 1.8 est ancien maintenant.