diff options
| author | Vojta Jina | 2011-05-18 13:31:26 +0200 |
|---|---|---|
| committer | Igor Minar | 2011-06-06 22:51:59 -0700 |
| commit | 7fe46e8d7e35c21167932c57b4ed53171164d1e2 (patch) | |
| tree | 066f0069c793244c00e30704932e609e784da45c | |
| parent | 864da8b553f04d772ef359ed721c7c2daf849653 (diff) | |
| download | angular.js-7fe46e8d7e35c21167932c57b4ed53171164d1e2.tar.bz2 | |
Bit of refactoring
| -rw-r--r-- | docs/spec/ngdocSpec.js | 12 | ||||
| -rw-r--r-- | docs/src/ngdoc.js | 35 |
2 files changed, 22 insertions, 25 deletions
diff --git a/docs/spec/ngdocSpec.js b/docs/spec/ngdocSpec.js index c2fe3a4d..ab313c1b 100644 --- a/docs/spec/ngdocSpec.js +++ b/docs/spec/ngdocSpec.js @@ -192,15 +192,15 @@ describe('ngdoc', function(){ describe('merge', function(){ it('should merge child with parent', function(){ - var parent = new Doc({name:'angular.service.abc'}); - var methodA = new Doc({name:'methodA', methodOf:'angular.service.abc'}); - var methodB = new Doc({name:'methodB', methodOf:'angular.service.abc'}); - var propA = new Doc({name:'propA', propertyOf:'angular.service.abc'}); - var propB = new Doc({name:'propB', propertyOf:'angular.service.abc'}); + var parent = new Doc({id: 'angular.service.abc', name: 'angular.service.abc', section: 'api'}); + var methodA = new Doc({name: 'methodA', methodOf: 'angular.service.abc'}); + var methodB = new Doc({name: 'methodB', methodOf: 'angular.service.abc'}); + var propA = new Doc({name: 'propA', propertyOf: 'angular.service.abc'}); + var propB = new Doc({name: 'propB', propertyOf: 'angular.service.abc'}); var docs = [methodB, methodA, propB, propA, parent]; // keep wrong order; ngdoc.merge(docs); expect(docs.length).toEqual(1); - expect(docs[0].name).toEqual('angular.service.abc'); + expect(docs[0].id).toEqual('angular.service.abc'); expect(docs[0].methods).toEqual([methodA, methodB]); expect(docs[0].properties).toEqual([propA, propB]); }); diff --git a/docs/src/ngdoc.js b/docs/src/ngdoc.js index decce79b..d68aaaea 100644 --- a/docs/src/ngdoc.js +++ b/docs/src/ngdoc.js @@ -669,36 +669,33 @@ function indent(text, spaceCount) { ////////////////////////////////////////////////////////// function merge(docs){ - // TODO(vojta) refactor to use only byFullId hash map - var byName = {}, - byFullId = {}; + var byFullId = {}; - docs.forEach(function(doc){ - byName[doc.name] = doc; + docs.forEach(function (doc) { byFullId[doc.section + '/' + doc.id] = doc; }); - for(var i=0; i<docs.length;) { - if (findParent(docs[i], 'method') || - findParent(docs[i], 'property')) { + + for(var i = 0; i < docs.length;) { + var doc = docs[i]; + + // check links - do they exist ? + doc.links.forEach(function(link) { + if (!byFullId[link]) console.log('WARNING: Non existing link "' + link + '" in ' + doc.section + '/' + doc.id); + }); + + // merge into parents + if (findParent(doc, 'method') || findParent(doc, 'property')) { docs.splice(i, 1); } else { i++; } } - // check links - // TODO(vojta) refactor to reuse the loop above - docs.forEach(function(doc) { - doc.links.forEach(function(link) { - if (!byFullId[link]) console.log('WARNING: Non existing link "' + link + '" in ' + doc.section + '/' + doc.id); - }); - }); - - function findParent(doc, name){ - var parentName = doc[name+'Of']; + function findParent(doc, name) { + var parentName = doc[name + 'Of']; if (!parentName) return false; - var parent = byName[parentName]; + var parent = byFullId['api/' + parentName]; if (!parent) throw new Error("No parent named '" + parentName + "' for '" + doc.name + "' in @" + name + "Of."); |
