At Sun, 17 Nov 2002 02:36:46 +0900,
Koji Arai wrote:
> RAA を検索したら Ruby/Cache というのをおくじさんが作ってらっ
> しゃるようですが、汎用的なものなので今回の目的にはあわないかな?

あれはあんまりインターフェースが練れてないので、もうちょっと改善しなく
てはと思いつつ、放置してました。本当はRuby/Cache側を改造すれば、もう少
しきれいに書けそうですが、試しにRuby/Cacheベースで書き直してみました。
参考になれば幸いです。


require 'cache' class FileCache def initialize(maxopen = 10) hook = Proc.new {|key, obj| obj.content.close} @cache = Cache.new(nil, nil, maxopen, nil, hook) @saw = {} end def open(file) unless @cache.cached?(file) @cache[file] = File.open(file, if @saw.key?(file) then 'w' else 'a' end) @saw[file] = true end @cache[file] end def close @cache.invalidate_all end end
おくじ