mirror of
https://github.com/documentationjs/documentation.git
synced 2026-01-25 14:26:29 +00:00
More flattening
This commit is contained in:
parent
398a3791ca
commit
8d9aa5ddc6
@ -12,6 +12,8 @@ var through = require('through'),
|
||||
*
|
||||
* * `@name`
|
||||
* * `@memberof`
|
||||
* * `@classdesc`
|
||||
* * `@kind`
|
||||
*
|
||||
* The following tags are flattened to a top-level array-valued property:
|
||||
*
|
||||
@ -21,6 +23,11 @@ var through = require('through'),
|
||||
* The `@static` and `@instance` tags are flattened to a `scope` property
|
||||
* whose value is `"static"` or `"instance"`.
|
||||
*
|
||||
* The `@access`, `@public`, `@protected`, and `@private` tags are flattened
|
||||
* to an `access` property whose value is `"protected"` or `"private"`.
|
||||
* The assumed default value is `"public"`, so `@access public` or `@public`
|
||||
* tags result in no `access` property.
|
||||
*
|
||||
* @name flatten
|
||||
* @return {stream.Transform}
|
||||
*/
|
||||
@ -43,6 +50,12 @@ var flatteners = {
|
||||
'memberof': function (result, tag) {
|
||||
result.memberof = tag.description;
|
||||
},
|
||||
'classdesc': function (result, tag) {
|
||||
result.classdesc = tag.description;
|
||||
},
|
||||
'kind': function (result, tag) {
|
||||
result.kind = tag.kind;
|
||||
},
|
||||
'param': function (result, tag) {
|
||||
if (!result.params) {
|
||||
result.params = [];
|
||||
@ -60,5 +73,21 @@ var flatteners = {
|
||||
},
|
||||
'instance': function (result, tag) {
|
||||
result.scope = 'instance';
|
||||
},
|
||||
'access': function (result, tag) {
|
||||
if (tag.access === 'public') {
|
||||
delete result.access;
|
||||
} else {
|
||||
result.access = tag.access;
|
||||
}
|
||||
},
|
||||
'public': function (result, tag) {
|
||||
delete result.access;
|
||||
},
|
||||
'protected': function (result, tag) {
|
||||
result.access = 'protected';
|
||||
},
|
||||
'private': function (result, tag) {
|
||||
result.access = 'private';
|
||||
}
|
||||
};
|
||||
|
||||
161
test/streams/flatten.js
Normal file
161
test/streams/flatten.js
Normal file
@ -0,0 +1,161 @@
|
||||
'use strict';
|
||||
|
||||
var test = require('prova'),
|
||||
concat = require('concat-stream'),
|
||||
parse = require('../../streams/parse'),
|
||||
flatten = require('../../streams/flatten');
|
||||
|
||||
function evaluate(fn, callback) {
|
||||
var stream = parse();
|
||||
|
||||
stream
|
||||
.pipe(flatten())
|
||||
.pipe(concat(callback));
|
||||
|
||||
stream.end({
|
||||
file: __filename,
|
||||
source: '(' + fn.toString() + ')'
|
||||
});
|
||||
}
|
||||
|
||||
test('flatten - name', function (t) {
|
||||
evaluate(function () {
|
||||
/** @name test */
|
||||
return 0;
|
||||
}, function (result) {
|
||||
t.equal(result[0].name, 'test');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
|
||||
test('flatten - memberof', function (t) {
|
||||
evaluate(function () {
|
||||
/** @memberof test */
|
||||
return 0;
|
||||
}, function (result) {
|
||||
t.equal(result[0].memberof, 'test');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
|
||||
test('flatten - classdesc', function (t) {
|
||||
evaluate(function () {
|
||||
/** @classdesc test */
|
||||
return 0;
|
||||
}, function (result) {
|
||||
t.equal(result[0].classdesc, 'test');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
|
||||
test('flatten - kind', function (t) {
|
||||
evaluate(function () {
|
||||
/** @kind class */
|
||||
return 0;
|
||||
}, function (result) {
|
||||
t.equal(result[0].kind, 'class');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
|
||||
test('flatten - param', function (t) {
|
||||
evaluate(function () {
|
||||
/** @param test */
|
||||
return 0;
|
||||
}, function (result) {
|
||||
t.equal(result[0].params.length, 1);
|
||||
t.equal(result[0].params[0].name, 'test');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
|
||||
test('flatten - returns', function (t) {
|
||||
evaluate(function () {
|
||||
/** @returns {number} test */
|
||||
return 0;
|
||||
}, function (result) {
|
||||
t.equal(result[0].returns.length, 1);
|
||||
t.equal(result[0].returns[0].description, 'test');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
|
||||
test('flatten - static', function (t) {
|
||||
evaluate(function () {
|
||||
/** @static */
|
||||
return 0;
|
||||
}, function (result) {
|
||||
t.equal(result[0].scope, 'static');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
|
||||
test('flatten - instance', function (t) {
|
||||
evaluate(function () {
|
||||
/** @instance */
|
||||
return 0;
|
||||
}, function (result) {
|
||||
t.equal(result[0].scope, 'instance');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
|
||||
test('flatten - access public', function (t) {
|
||||
evaluate(function () {
|
||||
/** @access public */
|
||||
return 0;
|
||||
}, function (result) {
|
||||
t.notOk('access' in result[0]);
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
|
||||
test('flatten - access protected', function (t) {
|
||||
evaluate(function () {
|
||||
/** @access protected */
|
||||
return 0;
|
||||
}, function (result) {
|
||||
t.equal(result[0].access, 'protected');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
|
||||
test('flatten - access private', function (t) {
|
||||
evaluate(function () {
|
||||
/** @access private */
|
||||
return 0;
|
||||
}, function (result) {
|
||||
t.equal(result[0].access, 'private');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
|
||||
test('flatten - public', function (t) {
|
||||
evaluate(function () {
|
||||
/** @public */
|
||||
return 0;
|
||||
}, function (result) {
|
||||
t.notOk('access' in result[0]);
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
|
||||
test('flatten - protected', function (t) {
|
||||
evaluate(function () {
|
||||
/** @protected */
|
||||
return 0;
|
||||
}, function (result) {
|
||||
t.equal(result[0].access, 'protected');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
|
||||
test('flatten - private', function (t) {
|
||||
evaluate(function () {
|
||||
/** @private */
|
||||
return 0;
|
||||
}, function (result) {
|
||||
t.equal(result[0].access, 'private');
|
||||
t.end();
|
||||
});
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user