Store best score in localStorage
[2048.git] / js / local_score_manager.js
blob:a/js/local_score_manager.js -> blob:b/js/local_score_manager.js
--- a/js/local_score_manager.js
+++ b/js/local_score_manager.js
@@ -1,25 +1,29 @@
+window.fakeStorage = {
+  _data       : {},
+  setItem     : function (id, val) {
+    console.log("set");
+    return this._data[id] = String(val);
+  },
+  getItem     : function (id) {
+    return this._data.hasOwnProperty(id) ? this._data[id] : undefined;
+  },
+  removeItem  : function (id) { return delete this._data[id]; },
+  clear       : function () { return this._data = {}; }
+};
+
 function LocalScoreManager() {
-  this.key = 'bestScore';
+  var localSupported = !!window.localStorage;
+
+  this.key     = "bestScore";
+  this.storage = localSupported ? window.localStorage : window.fakeStorage;
 }
 
 LocalScoreManager.prototype.get = function () {
-  if (!this.isSupported()) {
-    return 0;
-  }
-
-  return localStorage.getItem(this.key);
+  return this.storage.getItem(this.key) || 0;
 };
 
 LocalScoreManager.prototype.set = function (score) {
-  if (!this.isSupported()) {
-    return false;
-  }
-
-  localStorage.setItem(this.key, score);
-};
-
-LocalScoreManager.prototype.isSupported = function () {
-  return !!window.localStorage;
+  this.storage.setItem(this.key, score);
 };
 
 

comments