クラスのfreeze

オブジェクトはObject#freezeメソッドで凍結できるというじゃないか。

str = "hey"
str.freeze
str.upcase! # TypeError: can't modify frozen string

ということはClassオブジェクトもかしらと思ってやってみた。

String.freeze
class String # TypeError: can't modify frozen class
  def hi
    "hi"
  end
end

当たり前のようにfreezeできた。