Aujourd'hui, je suis tombé sur un problème délicat avec les constantes Ruby. Dans notre équipe, quelqu'un a créé un module, qui est inclus dans plusieurs modèles. Dans notre sortie de test (spec), cela se traduit par des messages d'avertissement tels que :
/home/ayrton/project/lib/life_cycle.rb:5 : avertissement : déjà initialisé constante RESET
Une façon de résoudre ce problème est de déclarer vos constantes comme ceci :
module LifeCycle
unless (const_defined?(:RESET))
RESET = 'reset'
end
#...
end
J'ai également lu un article de blog, écrit par Avdi Grimm, qui propose une alternative solution Je me demandais quelle était votre opinion à ce sujet.