Ruby 初心者スレッド Part 23at TECH
Ruby 初心者スレッド Part 23 - 暇つぶし2ch440:デフォルトの名無しさん
08/12/12 20:28:12
>>437 >>438
自分が一から設計するならそうしたいんですけどね。

hash_table.delete obj

みたいなコードがあって、今まで obj はメモリ内で完結するオブジェクトでしたが、
あるとき機能追加で File を持つ obj も扱うようになりました。
これを真面目に close するとすると delete する直前の箇所で、

obj.close if obj.respond_to? :close
hash_table.delete obj

としたり、 hash_table の初期化をする箇所で

class << hash_table = Hash.new
alias :__delete :delete
def delete obj
obj.close if obj.respond_to? :close
self.__delete obj
end
end
...
hash_table.delete obj

と hash_table を拡張するのは思い付いたんですが、
hash_table 側のコードを変更するよりは、
機能追加する側の obj の方でどうにか (あわよくば GC で勝手に) close できれば
そっちの方が変更としてはスマートかな、と思いました。

何か良い方法ありますかね?


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch