aboutsummaryrefslogtreecommitdiff
path: root/node_modules/montage/core/serializer.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/montage/core/serializer.js')
-rwxr-xr-xnode_modules/montage/core/serializer.js45
1 files changed, 37 insertions, 8 deletions
diff --git a/node_modules/montage/core/serializer.js b/node_modules/montage/core/serializer.js
index 449ebf7d..28f1b1d8 100755
--- a/node_modules/montage/core/serializer.js
+++ b/node_modules/montage/core/serializer.js
@@ -270,11 +270,16 @@ var Serializer = Montage.create(Montage, /** @lends module:montage/serializer.Se
270 }}, 270 }},
271 271
272 _generateLabelForObject: {value: function(object) { 272 _generateLabelForObject: {value: function(object) {
273 var objectName = Montage.getInfoForObject(object).objectName.toLowerCase(), 273 var objectName = object.identifier || Montage.getInfoForObject(object).objectName.toLowerCase(),
274 index = this._objectNamesIndex[objectName] || 1; 274 index = this._objectNamesIndex[objectName];
275 275
276 this._objectNamesIndex[objectName] = index + 1; 276 if (index) {
277 return objectName + index; 277 this._objectNamesIndex[objectName] = index + 1;
278 return objectName + index;
279 } else {
280 this._objectNamesIndex[objectName] = 2;
281 return objectName;
282 }
278 }}, 283 }},
279 284
280 _applySerializationUnits: {value: function(serializedUnits, object) { 285 _applySerializationUnits: {value: function(serializedUnits, object) {
@@ -292,13 +297,22 @@ var Serializer = Montage.create(Montage, /** @lends module:montage/serializer.Se
292 /** 297 /**
293 @private 298 @private
294 */ 299 */
300 _findObjectNameRegExp: {
301 value: /([^\/]+?)(\.reel)?$/
302 },
303 _toCamelCaseRegExp: {
304 value: /(?:^|-)([^-])/g
305 },
306 _replaceToCamelCase: {
307 value: function(_, g1) { return g1.toUpperCase() }
308 },
295 _serializeObject: {value: function(object, properties, type) { 309 _serializeObject: {value: function(object, properties, type) {
296 var uuid = object.uuid, 310 var uuid = object.uuid,
297 serializedReference = this._serializedReferences[uuid], 311 serializedReference = this._serializedReferences[uuid],
298 serializedUnits, 312 serializedUnits,
299 propertyNames, 313 propertyNames,
300 objectInfo, 314 objectInfo,
301 label; 315 label, moduleId, name, defaultName;
302 316
303 if (serializedReference) { 317 if (serializedReference) {
304 return serializedReference; 318 return serializedReference;
@@ -317,11 +331,26 @@ var Serializer = Montage.create(Montage, /** @lends module:montage/serializer.Se
317 serializedUnits = {}; 331 serializedUnits = {};
318 objectInfo = Montage.getInfoForObject(object); 332 objectInfo = Montage.getInfoForObject(object);
319 333
320 serializedUnits.module = this._serializeValue(this._require.identify( 334 moduleId = this._require.identify(
321 objectInfo.moduleId, 335 objectInfo.moduleId,
322 objectInfo.require) 336 objectInfo.require
323 ); 337 );
324 serializedUnits.name = this._serializeValue(objectInfo.objectName); 338 name = objectInfo.objectName;
339
340 this._findObjectNameRegExp.test(moduleId);
341 defaultName = RegExp.$1.replace(this._toCamelCaseRegExp, this._replaceToCamelCase);
342
343 if (defaultName === name) {
344 name = moduleId;
345 } else {
346 name = moduleId + "[" + name + "]";
347 }
348
349 if (objectInfo.isInstance) {
350 serializedUnits.prototype = this._serializeValue(name);
351 } else {
352 serializedUnits.object = this._serializeValue(name);
353 }
325 354
326 if (typeof object.serializeSelf === "function") { 355 if (typeof object.serializeSelf === "function") {
327 this._pushContextObject(object); 356 this._pushContextObject(object);