Сегодня я наткнулся на сложную проблему с константами Ruby. В нашей команде кто-то создал модуль, который входит в несколько моделей. В нашем (spec) тестовом выводе это приводит к предупреждающим сообщениям, например:
/home/ayrton/project/lib/life_cycle.rb:5: warning: уже инициализировано константа RESET
Один способ Решить эту проблему - объявить свои константы следующим образом:
module LifeCycle
unless (const_defined?(:RESET))
RESET = 'reset'
end
#...
end
Я также прочитал сообщение в блоге, написанное Авди Гриммом, которое предоставляет альтернативное решение . Мне было интересно, каково ваше мнение относительно это дело.