あづみです。

Masatoshi SEKI wrote:
> > あるオブジェクトを Mashal で dump する直前に、そのオブジェクトに特定の
> > メソッドが定義されていたらそのメソッドをコールし、返ってきたオブジェク
> > トを変わりに dump するようにするのはどうでしょうか?
> 
> 多少問題があることがわかっていますが、とりあえず _dump, _load と
> いうのがあります。

_dump に制御が移ってしまうと、それ以降の制御はそのオブジェクトに切り離
されてしまいますよね? 出力は全部 Marshal に任せたいのです。文字に変換
される直前にちょこっとオブジェクトを入れ替えることができれば良い。

具体的にはオブジェクトの内部にキャッシュを持ちたいんですよね。同じメソッ
ドが同じ条件で呼ばれる限り再計算されずに同じ値が返ってくる。Marshal::dump
だとそのキャッシュまで保存される。保存されて動きがおかしくなるわけでは
ないのだけど、無駄に出力されてデータが大きくなって困る。単にこれを避け
たいだけで。

うーん、こういうものが欲しくなるような実装方法自体がまずいのかなぁ…。


安積伸弥
adzumi / denpa.org