はじめての extend
モジュールもクラス変数を持てるんですね。知らなかった。
モジュール / クラスが require されてからプロセスが終了するまでは、そのモジュール / クラスのクラス変数はずっと同じオブジェクトって認識でいいんだろうか。多分いいんだろうな。
というのもあるプロセス中でパーサオブジェクトが持つ辞書オブジェクトは、何回パーサが作られても同じ辞書であってほしい*1ので、どうすればいいのかを悩んでいたのでした。
で、結局どうしたかというと、こんな感じにしたのでした。
module Dic
@@dic を初期化 def [](key)
@@dic[key]
end
とかいろいろ
end
class Parser
@@dic = Object.new.extend Dic
いろいろ
end