diff options
Diffstat (limited to 'node_modules/montage/core/serializer.js')
-rwxr-xr-x | node_modules/montage/core/serializer.js | 45 |
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); |