From: matz@... (Yukihiro Matsumoto) Date: 2001-02-06T00:54:56+09:00 Subject: [ruby-dev:12174] marshaling (Re: Re: observer.rb) まつもと ゆきひろです In message "[ruby-dev:12169] Re: observer.rb (Re: [ruby-list:27448] observer と dRuby)" on 01/02/05, Masatoshi SEKI writes: |ありがとうございます。1.6.3がもしでるなら入るとうれしいです。 あんまり大きな変更でないので入れてもよさそうですね。 |marshalってメソッドのあるなしでなにかありましたっけ? _dumpメソッドがあればそれを出力に使う仕様になってます。 んで、対になる_loadクラスメソッドで復元します。 京都で咳さんがおっしゃったようにこのインタフェースは使いにく いので、 * オブジェクトがある名前(_dumpのような)のメソッドを定義し ていれば、それを呼ぶ * そのメソッドには引数としてserializerオブジェクトが渡され る。あと多分limitも。 * そのオブジェクトのメソッドを使ってmarshalにオブジェクト を追加する。 * 復元は_loadに相当するメソッドがunserializerオブジェクト からひとつずつオブジェクトを取り出すことで実現する。 というようなインタフェースに変更しようかなあ、と思っているの ですが、問題がちょっとあって * 以下のものの適切な名前が思いつかない + dump用メソッド + load用メソッド + serializerのクラス + unserializerのクラス * 現在の_dump, _loadのインタフェースに比べて、それぞれのメ ソッドのバグに弱い。現在のインタフェースならdumpされたも のが文字列として渡されるので、load時に読み込みすぎてずれ るという問題は発生しません。 なんか良いアイディアはありませんかね。後者はdumpした範囲内だ け取り出すunserializerを毎回生成すれば回避できそうですが、名 前の問題はいつも悩みます。 まつもと ゆきひろ /:|)