Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (function() {
- window.LocalStorage = (function() {
- var time;
- LocalStorage.prototype.prefix = 'cache.';
- LocalStorage.prototype.cache = 60;
- function LocalStorage() {
- this.prefix = 'cache.';
- this.cache = 60;
- }
- LocalStorage.prototype.remember = function(name, minutes, callback) {
- var result;
- if (callback == null) {
- callback = (function() {});
- }
- if (this.has(name)) {
- return this.read(name).value;
- }
- result = callback((function(_this) {
- return function(result) {
- if (result != null) {
- return _this.write(name, result, minutes);
- }
- };
- })(this));
- if (result != null) {
- this.write(name, result, minutes);
- }
- return this;
- };
- LocalStorage.prototype.put = function(name, value, minutes) {
- if (minutes == null) {
- minutes = this.cache;
- }
- this.write(name, value, minutes);
- return this;
- };
- LocalStorage.prototype.has = function(name) {
- var result;
- result = this.read(name);
- if (result == null) {
- return false;
- }
- return result.timestamp > time();
- };
- LocalStorage.prototype.read = function(name) {
- var result;
- result = localStorage.getItem(this.prefix + name);
- if (result != null) {
- return JSON.parse(result);
- } else {
- return void 0;
- }
- };
- LocalStorage.prototype.write = function(name, val, minutes) {
- if (minutes == null) {
- minutes = this.cache;
- }
- localStorage.setItem(this.prefix + name, JSON.stringify({
- value: val,
- timestamp: time() + minutes
- }));
- return this;
- };
- time = function() {
- return Math.ceil((new Date).getTime() / 1000 / 60);
- };
- return LocalStorage;
- })();
- }).call(this);
Advertisement
Add Comment
Please, Sign In to add comment