- [1] SuikaWiki で使われている WikiDatabase の実装の一つ。
- [2] イメージ的には、 Yuki::YukiWikiDBMeta のメタ情報保管部分を取り出して、時限機能をつけたもの。 (というか実際そう実装した。)
- [3] 保存形式には SuikaWiki//WikiDB//SuikaWikiCache/0.9 を使います。データの保存日時も同時に記憶しています。これと DB を開く時に指定した有効期限を照合して、有効な場合にのみ値を返します。これだけの仕組みで、データを利用する側はとくに意識せずに期限付き cache が実現できるのです。
- [4] データベースを開く時に3つの時間引数があります。
-expires
には、有効期間(秒)を指定します。この期間を過ぎると値を替えしません。 - [5] [CODE{-removes]] は保存期間(秒)を指定します。この期間を過ぎると値を破棄します。この期間を長くしておけば、複数の場面で異なる有効期間を設定できます。(その必要がなければ有効期間と同じで構いません。)
- [6]
-now
には、現在時刻を指定します。日時の比較や保存に使われます。既定値はデータベースを開いた時点です。 - [7] SuikaWiki では、 WikiPage 内容要約や検索結果の保存に使っています。 WikiPage 本体 database に使っても面白いかもしれません。
Google search: Yuki::YukiWikiCache