mirror of
https://github.com/pebble-dev/clay.git
synced 2026-09-05 16:47:37 -04:00
minified does not work in the emulator or iOS so move settings iteration to utils.prepareSettingsForAppMessage()
This commit is contained in:
@@ -4,7 +4,7 @@ var configPageHtml = require('./tmp/config-page.html');
|
|||||||
var toSource = require('tosource');
|
var toSource = require('tosource');
|
||||||
var standardComponents = require('./src/scripts/components');
|
var standardComponents = require('./src/scripts/components');
|
||||||
var utils = require('./src/scripts/lib/utils');
|
var utils = require('./src/scripts/lib/utils');
|
||||||
var _ = require('./src/scripts/vendor/minified')._;
|
|
||||||
/**
|
/**
|
||||||
* @param {Array} config - the Clay config
|
* @param {Array} config - the Clay config
|
||||||
* @param {function} [customFn] - Custom code to run from the config page. Will run
|
* @param {function} [customFn] - Custom code to run from the config page. Will run
|
||||||
@@ -165,13 +165,7 @@ Clay.prototype.getSettings = function(response, convert) {
|
|||||||
|
|
||||||
localStorage.setItem('clay-settings', JSON.stringify(settings));
|
localStorage.setItem('clay-settings', JSON.stringify(settings));
|
||||||
|
|
||||||
if (convert === false) {
|
return convert === false ? settings : utils.prepareSettingsForAppMessage(settings);
|
||||||
return settings;
|
|
||||||
} else {
|
|
||||||
return _.mapObj(settings, function(key, value) {
|
|
||||||
return utils.prepareForAppMessage(value);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -53,3 +53,18 @@ module.exports.prepareForAppMessage = function(val) {
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a Clay settings dict into one that is compatible with
|
||||||
|
* Pebble.sendAppMessage();
|
||||||
|
* @see {prepareForAppMessage}
|
||||||
|
* @param {Object} settings
|
||||||
|
* @returns {{}}
|
||||||
|
*/
|
||||||
|
module.exports.prepareSettingsForAppMessage = function(settings) {
|
||||||
|
var result = {};
|
||||||
|
Object.keys(settings).forEach(function(key) {
|
||||||
|
result[key] = module.exports.prepareForAppMessage(settings[key]);
|
||||||
|
});
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|||||||
Vendored
+2
-42
@@ -1,8 +1,8 @@
|
|||||||
// minified.js config start -- use this comment to re-create a configuration in the Builder
|
// minified.js config start -- use this comment to re-create a configuration in the Builder
|
||||||
// - Only sections add, always, amdsupport, copyobj, dollardollar,
|
// - Only sections add, always, amdsupport, copyobj, dollardollar,
|
||||||
// - each, eachobj, equals, error, extend, find, format, formathtml, get, ht,
|
// - each, eachobj, equals, error, extend, find, format, formathtml, get, ht,
|
||||||
// - html, isobject, mapobj, off, on, ready, request, select, set, template,
|
// - html, isobject, off, on, ready, request, select, set, template, trigger,
|
||||||
// - trigger, underscore, wait.
|
// - underscore, wait.
|
||||||
|
|
||||||
|
|
||||||
// WARNING! This file is autogenerated from minified-master.js and others.
|
// WARNING! This file is autogenerated from minified-master.js and others.
|
||||||
@@ -2774,46 +2774,6 @@ define('minified', function() {
|
|||||||
*/
|
*/
|
||||||
'eachObj': eachObj,
|
'eachObj': eachObj,
|
||||||
|
|
||||||
/*$
|
|
||||||
* @id mapobj
|
|
||||||
* @group OBJECT
|
|
||||||
* @requires
|
|
||||||
* @configurable default
|
|
||||||
* @name _.mapObj()
|
|
||||||
* @syntax _.mapObj(obj, callback)
|
|
||||||
* @syntax _.mapObj(obj, callback, ctx)
|
|
||||||
* @module UTIL
|
|
||||||
* Creates a new object with the same properties but different values using the given callback function. The function is called
|
|
||||||
* for each property of the input object to provice a new value for the property.
|
|
||||||
*
|
|
||||||
* @example Increases the values of all properties.
|
|
||||||
* <pre>
|
|
||||||
* var r = _.mapObj({a: 1, b: 5, c: 2}, function(key, value) {
|
|
||||||
* return value + 1;
|
|
||||||
* });
|
|
||||||
* // r is now {a: 2, b: 6, c: 2}
|
|
||||||
* </pre>
|
|
||||||
*
|
|
||||||
* @param obj the object to use
|
|
||||||
* @param callback The callback <code>function(key, value)</code> to invoke for each property.
|
|
||||||
* <dl><dt>key</dt><dd>The name of the current property.</dd>
|
|
||||||
* <dt>value</dt><dd>The value of the current property.</dd>
|
|
||||||
* <dt class="this">this</dt><dd>The given context. If not set, the object itself.</dd>
|
|
||||||
* <dt class="returnValue">(callback return value)</dt><dd>This value will replace the original value in the new object.</dd></dl>
|
|
||||||
* @param ctx optional a context to pass to the callback as 'this'.
|
|
||||||
* @return the new object
|
|
||||||
*
|
|
||||||
* @see ##_.filterObj() filters an object.
|
|
||||||
* @see ##map() maps a list.
|
|
||||||
*/
|
|
||||||
'mapObj': function(obj, mapFunc, ctx) {
|
|
||||||
var result = {};
|
|
||||||
eachObj(obj, function(key, value) {
|
|
||||||
result[key] = mapFunc.call(ctx || obj, key, value);
|
|
||||||
});
|
|
||||||
return result;
|
|
||||||
},
|
|
||||||
|
|
||||||
/*$
|
/*$
|
||||||
* @id isobject
|
* @id isobject
|
||||||
* @group TYPE
|
* @group TYPE
|
||||||
|
|||||||
@@ -56,4 +56,30 @@ describe('Utils', function() {
|
|||||||
assert.strictEqual(utils.prepareForAppMessage(123), 123);
|
assert.strictEqual(utils.prepareForAppMessage(123), 123);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('.prepareSettingsForAppMessage', function() {
|
||||||
|
it('converts the settings correctly', function() {
|
||||||
|
var settings = {
|
||||||
|
test1: false,
|
||||||
|
test2: 'val-2',
|
||||||
|
test3: true,
|
||||||
|
test4: ['cb-1', 'cb-3'],
|
||||||
|
test5: 12345,
|
||||||
|
test6: [1, 2, 3, 4],
|
||||||
|
test7: [true, false, true]
|
||||||
|
};
|
||||||
|
var expected = {
|
||||||
|
test1: 0,
|
||||||
|
test2: 'val-2',
|
||||||
|
test3: 1,
|
||||||
|
test4: ['cb-1', 0, 'cb-3', 0],
|
||||||
|
test5: 12345,
|
||||||
|
test6: [1, 2, 3, 4],
|
||||||
|
test7: [1, 0, 1]
|
||||||
|
};
|
||||||
|
|
||||||
|
assert.deepEqual(utils.prepareSettingsForAppMessage(settings), expected);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user