Created
May 1, 2011 14:08
-
-
Save hakobera/950525 to your computer and use it in GitHub Desktop.
LocalStorage Wrapper for enchant.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* enchant.js Save/Load module | |
*/ | |
/** | |
* Namespace は適当に | |
*/ | |
var Storage = {}; | |
Storage.Event = { | |
SAVE: 'storage.save', | |
LOAD: 'storage.load' | |
}; | |
(function() { | |
/** | |
* Local storage wrpper. | |
*/ | |
var db ={ | |
/** | |
* 指定したキーでオブジェクトを保存します。 | |
* | |
* @param {String} key キー | |
* @param obj 保存するオブジェクト | |
* @return {Void} | |
*/ | |
set : function(key, obj) { | |
localStorage.setItem(key, JSON.stringify(obj)); | |
}, | |
/** | |
* 指定したキーで保存されたオブジェクトを取得します。 | |
* | |
* @param {String} key キー | |
* @return {Object} 保存されたオブジェクト | |
*/ | |
get : function(key) { | |
if (this.contains(key)) { | |
return JSON.parse(localStorage.getItem(key)); | |
} else { | |
return null; | |
} | |
}, | |
/** | |
* ストレージに指定した key が保存されているかどうかを判定して返します。 | |
* | |
* @param {String} key | |
* @return {Boolean} key が保存されている場合は true | |
*/ | |
contains: function(key) { | |
return localStorage.getItem(key) !== null; | |
}, | |
/** | |
* 指定したキーに保存されたオブジェクトを削除します。 | |
* | |
* @param {String} key 削除するキー | |
* @return {Object} 保存されたオブジェクト | |
*/ | |
remove: function(key) { | |
var obj = get(key); | |
localStorage.setItem(key, null); | |
return obj; | |
}, | |
/** | |
* 全ての保存されたデータを削除します。 | |
*/ | |
clear: function() { | |
localStorage.clear(); | |
} | |
}; | |
/** | |
* EventTarget を保存します。 | |
* | |
* @param {enchant.EventTarget} 保存する EventTarget | |
* @return {Void} | |
*/ | |
Storage.save = function(target) { | |
var e = new enchant.Event(Storage.Event.SAVE); | |
e.db = db; | |
target.dispatchEvent(e); | |
console.log('save', target); | |
}; | |
/** | |
* EventTarget を復元します。 | |
* | |
* @param {enchant.EventTarget} 復元する EventTarget | |
* @return {Void} | |
*/ | |
Storage.load = function(target) { | |
var e = new enchant.Event(Storage.Event.LOAD); | |
e.db = db; | |
target.dispatchEvent(e); | |
console.log('load', target); | |
}; | |
})(this); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment