web-dev-qa-db-fra.com

Vérifier si une constante est déjà définie

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)
75
peter
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.

121
jibiel

const_defined? API

pry> User.const_defined?("PER_PAGE")
=> true
pry> User.const_defined?("PER_PAGE123")
=> false
20
rusllonrails
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.

4
akostadinov