private宣言で定数には影響しないのかな
activesupportのinheritable_attributes.rb 読んでたらこんな記述があった。なぜかprivate宣言の中で定数を宣言している。
private # Prevent this constant from being created multiple times EMPTY_INHERITABLE_ATTRIBUTES = {}.freeze unless const_defined?(:EMPTY_INHERITABLE_ATTRIBUTES)
よくわからないがprivate定数ってことか?と調査してみた。
class A CONST = "public" private CONST_P = "private" end p CONST p CONST_P
結果は、
"public" "private"
ということなので定数にprivate宣言はできないことがわかった。
そもそも、こうしてみるとprivate宣言はmethodにしか出来ないことがわかる。
irb(main):003:1>private :CONST_P NameError: undefined method `CONST_P' for class `A'