咳といいます。

> あるオブジェクトを Mashal で dump する直前に、そのオブジェクトに特定の
> メソッドが定義されていたらそのメソッドをコールし、返ってきたオブジェク
> トを変わりに dump するようにするのはどうでしょうか?

多少問題があることがわかっていますが、とりあえず _dump, _load と
いうのがあります。

Foo#_dump と Foo._load を用意するとできます。

単純なサンプルがすぐに書けないけど drb/drb.rb とかでやってます。
あとDave&Andyの本に出ていたからピカチュウ本にも出てるんじゃないかな。


http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=Marshal より。

    出力するオブジェクトがメソッド`(({_dump}))'を定義している場
    合には、ファイル出力はそのメソッドを使って行われます。メソッド
    `(({_dump}))'は引数として再帰を制限するレベル((|limit|))を受け取り、
    オブジェクトを文字列化したものを返します。
    インスタンスがメソッド`(({_dump}))'を持つクラスは必ず
    同じフォーマットを読み戻す特異メソッド`(({_load}))'を定義
    する必要があります。`(({_load}))'はオブジェクトを表現
    した文字列を受け取り、それをオブジェクトに戻したものを返す必要があります。