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