storage の覚書き

storage は また 使いそうなので覚書き

  • storage.newMap(key, store)
    • ObjectStore の 新規作成 あるいは 取得
    • ObjectStore は storage[key] や storage.key で アクセスできる
    • store
      • true で ファイルに保存です。
      • false で 保存されないので再起動で消えちゃいます。
      • 最初に確保した時点で 保存の有無は確定のようで途中で切り替えできない
  • ObjectStore
    • set(key, val)
      • key に val を 保存する
      • 新規追加なら"add" Eventが 発生、上書きなら"change" Event が発生
      • store が true の場合 実行したら勝手に保存される
    • remove(key)
      • key を 削除して "remove" Event が 発生
      • store が true の場合 実行したら勝手に保存される
    • get(key)
      • key の Objectを 取得
    • clear()
      • データのクリア
      • store が true でも 保存されないので 明示的に 保存する必要がある
  • storage.newArray(key,store)
    • ArrayStore の 新規作成 あるいは 取得
    • store が true で ファイルに保存
  • ArrayStore
    • set(index, value)
      • array[index] に value 代入
      • change Event 発生:
    • push(value)
      • push する
      • Array.push みたいに push(1,2,3,4) は できない
      • push Event 発生
    • pop()
      • pop する
      • pop Event 発生
    • truncate(length, fromEnd)
      • 配列の長さを短くする(拡張はできない)
        • [1,2,3,4,5,6] に truncate(3) で [1,2,3] になる
      • fromEnd が true で 後ろから
        • [1,2,3,4,5,6] に truncate(3, true) で [4,5,6] になる
      • truncate Event 発生
    • mutate(aFuncName)
      • Array の 関数実行?
      • 例(使い方がさっぱりだったので vimperator内をgrep して参考)
        • mutate("filter", function(val) val > 3) で [1,2,3,4,5,6] を [4,5,6] とできるみたい
      • change Event 発生
    • get(index)
      • index 番目の 値取得
      • 負の場合は末尾から

ArrayStoreのmutate がさっぱり わかりません。
あと、ObjectStore に XML が 使えないことが 残念です。
storage.newXML あたりを 実装して xpath で 取得できて 更新が できたら 便利かな?