Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| // namespace | |
| var SLAcer = SLAcer || {}; | |
| ;(function() { | |
| // Constructor | |
| function Settings(settings) { | |
| this.settings = {}; | |
| for (var namespace in window.localStorage) { | |
| this.settings[namespace] = JSON.parse( | |
| window.localStorage.getItem(namespace) | |
| ); | |
| } | |
| _.defaultsDeep(this.settings, settings || {}); | |
| this.store(); | |
| } | |
| // ------------------------------------------------------------------------- | |
| Settings.prototype.store = function() { | |
| for (var namespace in this.settings) { | |
| window.localStorage.setItem( | |
| namespace, JSON.stringify(this.settings[namespace]) | |
| ); | |
| } | |
| }; | |
| Settings.prototype.has = function(path) { | |
| return _.has(this.settings, path); | |
| }; | |
| Settings.prototype.get = function(path, defaultValue) { | |
| if (path) { | |
| return _.get(this.settings, path, defaultValue); | |
| } | |
| return this.settings; | |
| }; | |
| Settings.prototype.set = function(path, value, store) { | |
| store = (store == undefined) ? true : (!!store); | |
| if (typeof path == 'string') { | |
| if (typeof value == 'object') { | |
| value = _.merge(this.get(path, {}), value); | |
| } | |
| _.set(this.settings, path, value); | |
| } | |
| else { | |
| for (var namespace in path) { | |
| this.set(namespace, path[namespace], false); | |
| } | |
| } | |
| store && this.store(); | |
| return this; | |
| }; | |
| // ------------------------------------------------------------------------- | |
| // export module | |
| SLAcer.Settings = Settings; | |
| })(); |