diff options
Diffstat (limited to 'dgbuilder/red/settings.js')
-rw-r--r-- | dgbuilder/red/settings.js | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/dgbuilder/red/settings.js b/dgbuilder/red/settings.js deleted file mode 100644 index 4994953f..00000000 --- a/dgbuilder/red/settings.js +++ /dev/null @@ -1,84 +0,0 @@ -/** - * Copyright 2014 IBM Corp. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - **/ - -var when = require("when"); - -var assert = require("assert"); - -var userSettings = null; -var globalSettings = null; -var storage = null; - -var persistentSettings = { - init: function(settings) { - userSettings = settings; - - for (var i in settings) { - if (settings.hasOwnProperty(i)) { - (function() { - var j = i; - persistentSettings.__defineGetter__(j,function() { return userSettings[j]; }); - persistentSettings.__defineSetter__(j,function() { throw new Error("Property '"+i+"' is read-only"); }); - })(); - } - } - globalSettings = null; - }, - load: function(_storage) { - storage = _storage; - return storage.getSettings().then(function(_settings) { - globalSettings = _settings; - }); - }, - get: function(prop) { - if (userSettings.hasOwnProperty(prop)) { - return userSettings[prop]; - } - if (globalSettings === null) { - throw new Error("Settings not available"); - } - return globalSettings[prop]; - }, - - set: function(prop,value) { - if (userSettings.hasOwnProperty(prop)) { - throw new Error("Property '"+prop+"' is read-only"); - } - if (globalSettings === null) { - throw new Error("Settings not available"); - } - var current = globalSettings[prop]; - globalSettings[prop] = value; - try { - assert.deepEqual(current,value); - return when.resolve(); - } catch(err) { - return storage.saveSettings(globalSettings); - } - }, - - available: function() { - return (globalSettings !== null); - }, - - reset: function() { - userSettings = null; - globalSettings = null; - storage = null; - } -} - -module.exports = persistentSettings; |