aboutsummaryrefslogtreecommitdiffstats
path: root/dgbuilder/red/settings.js
diff options
context:
space:
mode:
Diffstat (limited to 'dgbuilder/red/settings.js')
-rw-r--r--dgbuilder/red/settings.js84
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;