решения раздражающего сообщения «предупреждение: уже инициализированная константа»

Сегодня я наткнулся на сложную проблему с константами Ruby. В нашей команде кто-то создал модуль, который входит в несколько моделей. В нашем (spec) тестовом выводе это приводит к предупреждающим сообщениям, например:

/home/ayrton/project/lib/life_cycle.rb:5: warning: уже инициализировано константа RESET

Один способ Решить эту проблему - объявить свои константы следующим образом:

module LifeCycle

  unless (const_defined?(:RESET))
    RESET = 'reset'
  end

  #...
end

Я также прочитал сообщение в блоге, написанное Авди Гриммом, которое предоставляет альтернативное решение . Мне было интересно, каково ваше мнение относительно это дело.

63
задан 3 October 2013 в 11:27
поделиться