12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- var Emitter = require('./Emitter');
- var isStr = require('./isStr');
- var isObj = require('./isObj');
- var each = require('./each');
- var toArr = require('./toArr');
- exports = Emitter.extend({
- initialize: function Store(data) {
- this.callSuper(Emitter, 'initialize', arguments);
- this._data = data || {};
- this.save(this._data);
- },
- set: function(key, val) {
- var data;
- if (isStr(key)) {
- data = {};
- data[key] = val;
- } else if (isObj(key)) {
- data = key;
- }
- var self = this;
- each(data, function(val, key) {
- var oldVal = self._data[key];
- self._data[key] = val;
- self.emit('change', key, val, oldVal);
- });
- this.save(this._data);
- },
- get: function(key) {
- var data = this._data;
- if (isStr(key)) return data[key];
- var ret = {};
- each(key, function(val) {
- ret[val] = data[val];
- });
- return ret;
- },
- remove: function(key) {
- key = toArr(key);
- var data = this._data;
- each(key, function(val) {
- delete data[val];
- });
- this.save(data);
- },
- clear: function() {
- this._data = {};
- this.save(this._data);
- },
- each: function(fn) {
- each(this._data, fn);
- },
- save: function(data) {
- this._data = data;
- }
- });
- module.exports = exports;
|