石橋"rubyholic"秀仁です。
咳さん、こんばんは。

From: Masatoshi SEKI <m_seki / mva.biglobe.ne.jp>
Subject: [ruby-list:23546] Re: dump a single object

> 咳といいます。

> > お気づきかどうか分かりませんが1.5系移行ではすべてのオブジェ
> > クトがインスタンス変数を持てます。整数でさえも。
> 
> 1.4 (1.3?)からじゃないでしたっけ?
> 
> RefMarshalは、オブジェクトをdupしてインスタンス変数を
> 参照に置き換えます。(整数でさえも ;-)

RefMarshal の「dup式参照解決法」は、なかなか面白いです。

> インスタンス変数以外の方法でオブジェクトを参照できる
> Array, Hash はケアしてあげます。(←これ以外にもあるかも…)

そうなんですねぇ。組み込みクラスだけでも、
どこまでサポートしたもんかと悩みます。
# とりあえずは Array と Hash でいいと思います

> nilなどdupできないのはあきらめてそのまま格納します。

dupの例外を補足するとこですね。これも面白いです。

> 最終的に marshal に頼るつもりだったので marshal 不能なものは
> 考えていませんが、Map, Ref の表をつくるだけなら、dup可能な
> ものであればある程度対応できるかも。
> でもやっぱりできないものはありますね。

「やっぱりできないもの」は相手にしないのが普通でしょうかね。
そもそも、ほかの言語の永続化フレームワークでは、
ユーザがドメインクラスと、それに対応するブローカークラスを
作りますよね。そこまで面倒くさいことではないはず。

全自動の永続化フレームワークができれば、Ruby の「キラー」
になるかなと思ったんですが (^^; 残念。永続記憶媒体を
フラットファイルに限定すれば PStore でもいいんですけど・・・

--
Hideto "rubyholic" ISHIBASHI  http://www.rr.iij4u.or.jp/~hideto-i/
blade clone:  http://www.rr.iij4u.or.jp/~hideto-i/rb/yaiba/index.html