まつもと ゆきひろです

In message "[ruby-dev:18186] [req] Marshal"
    on 02/09/05, Keiju ISHITSUKA <keiju / rational.com> writes:

|この件も, 先週松本さんと直接話をしたものですが... きっと, 忘れているに
|違いないと思うので, メイルします.

忘れてるっていうか、この間の「特異クラスをダンプ/リストアす
るメソッド」ってのは、あのままでは実現できないと感じたので、
私の中では話が終わってました。

|現行のMarshalは特異メソッドを持ったオブジェクトはダンプできません. ダ
|ンプできなくしているのは, リストアできないからだと思いますが, 現行は制
|限がきつすぎると思います.

同意します。

|何がきついかというと, (名前つき)モジュールをオブジェクトにextendした場
|合です. この場合も, ダンプできないわけですが, リストアしてオブジェクト
|を再生できないわけではありません. リストアしたあと, extendしてあったモ
|ジュールをextendすれば良いわけですから.
|
|こうすれば, 特異メソッドを持ったオブジェクトの場合も, モジュールを
|extendして用いればダンプできるようになりますので, 回避策として使えるよ
|うになります.
|
|ということで, Marshalに対するリクエストは, (名前つき)モジュールを
|extendしたオブジェクトはダンプ/リストアできるようにしてほしい. という
|ものです.

それ自身が定義した特異メソッドを持たず、extendしたものだけを
持つオブジェクトはダンプ可能にするということですよね。これは
現実的なアイディアですね。

考えてみましょう。marshalのフォーマットが変化するのを嫌がる
人は多いのですが。特にdRubyを使ってる方面。

							matz.