From: "Yoshinori K. Okuji" Date: 2002-11-22T20:24:35+09:00 Subject: [ruby-list:36563] [ANN] Ruby/Cache 0.2 Ruby/Cache 0.2をリリースしました。Ruby/Cacheは、LRUアルゴリズムに基い て、任意のオブジェクトをキャッシュするためのライブラリです。Hashに近い 振る舞いをしますが、しばらく使っていないオブジェクトが無効になります。 RAAのエントリはここです↓ http://www.ruby-lang.org/en/raa-list.rhtml?id=704 以前からの変更点: * もっとHashっぽくなりました。Hashのメソッドのうち、Cacheでも役に立つ かもしれないメソッドを相当数追加し、既存のメソッドの返り値も修正しま した。 * オブジェクトの期限切れの関係で、 if cache.cached?(key) then cache[key] end のようなコードはあまり安全ではなかったので、Hash#fetchとは若干異なる 挙動をするCache#fetchを作りました。 cache.fetch(key) {|key| foo(key)} のようにして、keyが無い場合、foo(key)を呼び出し、その返り値をキャッ シュするということが可能です。 * [ruby-list#36497]の新井さんのコードをパクって、サンプルとして添付し ました。勝手にやりました。もし悪かったら、叱ってください。>新井さん * リファレンスマニュアルを書きました。 もう少し考慮したいのは、今は勝手にexpireしちゃうので、期限を設定した場 合、タイミングによっては妙な問題が起こり得ます。例えば、最後にアクセス してから60秒後にexpireが行われることにして、処理に120秒かかったら、途 中でオブジェクトが無効になる恐れがあります。だから、勝手にexpireするの はやめさせるべきかもしれません。 おくじ