岩崎 と申します。

デストラクタについての質問です。

== やりたいこと

  あるクラスCのインスタンス変数が持つデータ(クラスD: Arrayのようなも
のを想定)を
 クラスCのインスタンスが破棄される前にファイルに書き出す。


== これまでの私の知識

 1.クラスCを利用する側がENDもしくはbegin ... ensure ...endで処理す
る。

 2.クラスCのインスタンス変数と直接関係しないリソースの開放処理であれ
ば
   ObjectSpace.define_finalizer で リソース開放を行うProcを定義して
処理可能(らしい)。

 過去のMLは「デストラクタ」で検索してみましたが,ずばりどうすればよいの
か分からない状況。

== 質問

  「やりたいこと」 に示す処理を行う場合のrubyでの標準的な実装方法。

 ※ Cクラスの利用者が明示的にDの内容保存するコードを書かなくても
   自動で保存したいと考えていますが、それが無理としてもこうした場合の
   一般的な処理方法を教えてください。

 宜しくお願いします。