aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVojta Jina2011-05-18 13:31:26 +0200
committerIgor Minar2011-06-06 22:51:59 -0700
commit7fe46e8d7e35c21167932c57b4ed53171164d1e2 (patch)
tree066f0069c793244c00e30704932e609e784da45c
parent864da8b553f04d772ef359ed721c7c2daf849653 (diff)
downloadangular.js-7fe46e8d7e35c21167932c57b4ed53171164d1e2.tar.bz2
Bit of refactoring
-rw-r--r--docs/spec/ngdocSpec.js12
-rw-r--r--docs/src/ngdoc.js35
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.");