Esanders has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/65793


Change subject: Cleanup internalList method names and data stores
......................................................................

Cleanup internalList method names and data stores

Renamed some methods are erase the HTML data after conversion.

Change-Id: Ic7317db2c7693591fda4bea459631981a69003f3
---
M modules/ve/dm/nodes/ve.dm.MWReferenceNode.js
M modules/ve/dm/ve.dm.Converter.js
M modules/ve/dm/ve.dm.InternalList.js
M modules/ve/test/dm/ve.dm.Document.test.js
M modules/ve/test/dm/ve.dm.example.js
5 files changed, 15 insertions(+), 17 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/93/65793/1

diff --git a/modules/ve/dm/nodes/ve.dm.MWReferenceNode.js 
b/modules/ve/dm/nodes/ve.dm.MWReferenceNode.js
index 54198ea..58639bc 100644
--- a/modules/ve/dm/nodes/ve.dm.MWReferenceNode.js
+++ b/modules/ve/dm/nodes/ve.dm.MWReferenceNode.js
@@ -43,7 +43,7 @@
                // TODO: should also store and use mw.attrs.group once 
available from Parsoid
                key = name !== null ? name : ve.getHash( body );
 
-       listIndex = converter.internalList.addItem( key, body );
+       listIndex = converter.internalList.queueItemHtml( key, body );
 
        dataElement = {
                'type': this.name,
diff --git a/modules/ve/dm/ve.dm.Converter.js b/modules/ve/dm/ve.dm.Converter.js
index 6f51ae6..89db883 100644
--- a/modules/ve/dm/ve.dm.Converter.js
+++ b/modules/ve/dm/ve.dm.Converter.js
@@ -360,7 +360,7 @@
                store,
                this.getDataFromDomRecursion( doc.body )
        );
-       refData = this.internalList.getDataFromDom( this );
+       refData = this.internalList.convertToData( this );
        linearData.batchSplice( linearData.getLength(), 0, refData );
 
        // Clear the state
diff --git a/modules/ve/dm/ve.dm.InternalList.js 
b/modules/ve/dm/ve.dm.InternalList.js
index db39eaa..21a2aad 100644
--- a/modules/ve/dm/ve.dm.InternalList.js
+++ b/modules/ve/dm/ve.dm.InternalList.js
@@ -35,19 +35,19 @@
 /* Methods */
 
 /**
- * Add an item to the list.
+ * Queues up an item's html for parsing later.
  *
- * If an item with this key already exists it will be ignored.
+ * If an item with the specified key already exists it will be ignored.
  *
  * @method
  * @param {string} key Item key
- * @param {string} body Item contents
+ * @param {string} html Item contents
  * @returns {number} Index of the item in the index-value store, and also the 
list
  */
-ve.dm.InternalList.prototype.addItem = function ( key, body ) {
+ve.dm.InternalList.prototype.queueItemHtml = function ( key, html ) {
        var index = this.store.indexOfHash( key );
        if ( index === null ) {
-               index = this.store.index( body, key );
+               index = this.store.index( html, key );
                this.itemsHtml.push( index );
        }
        return index;
@@ -102,16 +102,18 @@
 };
 
 /**
- * Gets linear model data for all the stored item's HTML.
+ * Converts stored item HTML into linear data.
  *
  * Each item is an InternalItem, and they are wrapped in an InternalList.
  * If there are no items an empty array is returned.
+ *
+ * Stored HTML is deleted after conversion.
  *
  * @method
  * @param {ve.dm.Converter} converter Converter object
  * @returns {Array} Linear model data
  */
-ve.dm.InternalList.prototype.getDataFromDom = function ( converter ) {
+ve.dm.InternalList.prototype.convertToData = function ( converter ) {
        var i, length, itemData,
                itemsHtml = this.getItemsHtml(), list = [];
 
@@ -127,6 +129,8 @@
                }
                list.push( { 'type': '/internalList' } );
        }
+       // After conversion we no longer need the HTML
+       this.itemsHtml = null;
        return list;
 };
 
@@ -139,7 +143,6 @@
 ve.dm.InternalList.prototype.clone = function ( doc ) {
        var clone = new this.constructor( doc || this.doc );
        clone.store = this.store.clone();
-       clone.itemsHtml = this.itemsHtml.slice();
        return clone;
 };
 
diff --git a/modules/ve/test/dm/ve.dm.Document.test.js 
b/modules/ve/test/dm/ve.dm.Document.test.js
index 0f2caa4..f5a2dbd 100644
--- a/modules/ve/test/dm/ve.dm.Document.test.js
+++ b/modules/ve/test/dm/ve.dm.Document.test.js
@@ -95,7 +95,7 @@
                                'expectedData': doc.data.slice( 21, 27 
).concat( doc.data.slice( 5, 21 ) )
                        }
                ];
-       QUnit.expect( 8*cases.length );
+       QUnit.expect( 6*cases.length );
        for ( i = 0; i < cases.length; i++ ) {
                doc = ve.dm.example.createExampleDocument( cases[i].doc );
                doc2 = doc.getDocumentSlice( cases[i].arg );
@@ -107,16 +107,11 @@
                        cases[i].msg + ': store is copied' );
                assert.notStrictEqual( doc2.store, doc.store,
                        cases[i].msg + ': store is a clone, not the same' );
-               assert.deepEqual( doc2.internalList.itemsHtml, 
doc.internalList.itemsHtml,
-                       cases[i].msg + ': internal list items are copied' );
-               assert.notStrictEqual( doc2.internalList.itemsHtml, 
doc.internalList.itemsHtml,
-                       cases[i].msg + ': internal list items array is cloned, 
not the same' );
                assert.deepEqual( doc2.internalList.store, 
doc.internalList.store,
                        cases[i].msg + ': internal list store is copied' );
                assert.notStrictEqual( doc2.internalList.store, 
doc.internalList.store,
                        cases[i].msg + ': internal list store is a clone, not 
the same' );
        }
-
 } );
 
 QUnit.test( 'getMetadataReplace', 3, function ( assert ) {
diff --git a/modules/ve/test/dm/ve.dm.example.js 
b/modules/ve/test/dm/ve.dm.example.js
index 9eecf66..b83ce06 100644
--- a/modules/ve/test/dm/ve.dm.example.js
+++ b/modules/ve/test/dm/ve.dm.example.js
@@ -109,7 +109,7 @@
        // HACK internalList isn't populated when creating a document from data
        if ( ve.dm.example[name].internalItems ) {
                for ( i = 0; i < ve.dm.example[name].internalItems.length; i++ 
) {
-                       doc.internalList.addItem(
+                       doc.internalList.queueItemHtml(
                                ve.dm.example[name].internalItems[i].key,
                                ve.dm.example[name].internalItems[i].body
                        );

-- 
To view, visit https://gerrit.wikimedia.org/r/65793
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic7317db2c7693591fda4bea459631981a69003f3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <esand...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to