From: sakazuki Date: 2003-07-27T20:48:47+09:00 Subject: [ruby-list:37976] Singletonオブジェクトの保存・読み込み こんにちは。sakazukiです。 Singletonのオブジェクトを生成時にMarshal.loadでファイルから読み込み、 終了時に、ファイルにMarshal.dumpしたいと思っているのですが、うまくいきません。 下記のように、initializeで保存処理を仕込もうと思ったのですが、 newを再定義してしまったせいかinitializeはよびだされません。 何かうまい方法はありませんでしょうか? require 'singleton' class CookieManager < Hash include Singleton def self.new puts "loading" File.open('cookie'){|f| magic = f.readline Marshal.load(f) } end def initialize puts "set finalizer" ObjectSpace.define_finalizer(self, self.save) end def save Proc.new{ puts "save cookie..." File.open('cookie', "w") do |f| f.puts "#Ruby-Cookie-1.0" f.print Marshal.dump(self) end } end end a = CookieManager.instance b = CookieManager.instance p a, b ---- sakazuki(QZS01353@nifty.ne.jp) hp: http://homepage2.nifty.com/sakazuki/