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するの
はやめさせるべきかもしれません。

おくじ