diff --git a/jsdoc.js b/jsdoc.js index 0204ff61..28052b6e 100644 --- a/jsdoc.js +++ b/jsdoc.js @@ -237,6 +237,8 @@ function main() { jsdoc.augment.addInherited(docs); jsdoc.borrow.resolveBorrows(docs); + app.jsdoc.parser.fireProcessingComplete({doclets: docs}); + if (env.opts.explain) { dump(docs); process.exit(0); diff --git a/lib/jsdoc/src/parser.js b/lib/jsdoc/src/parser.js index d98b0829..c3ef6c42 100644 --- a/lib/jsdoc/src/parser.js +++ b/lib/jsdoc/src/parser.js @@ -97,6 +97,10 @@ exports.Parser.prototype.parse = function(sourceFiles, encoding) { return this._resultBuffer; }; +exports.Parser.prototype.fireProcessingComplete = function(doclets) { + this.emit('processingComplete', doclets); +}; + /** * @returns {Array} The accumulated results of any calls to parse. */ diff --git a/plugins/eventDumper.js b/plugins/eventDumper.js index 70eff028..27857455 100644 --- a/plugins/eventDumper.js +++ b/plugins/eventDumper.js @@ -19,7 +19,8 @@ var events = conf.include || [ 'symbolFound', 'newDoclet', 'fileComplete', - 'parseComplete' + 'parseComplete', + 'processingComplete' ]; // Don't dump the excluded parser events if (conf.exclude) { diff --git a/test/specs/jsdoc/src/parser.js b/test/specs/jsdoc/src/parser.js index d1794dee..2de67b7e 100644 --- a/test/specs/jsdoc/src/parser.js +++ b/test/specs/jsdoc/src/parser.js @@ -77,6 +77,14 @@ describe("jsdoc/src/parser", function() { expect(spy).toHaveBeenCalled(); expect(spy.mostRecentCall.args[0].sourcefiles).toEqual(["[[string0]]"]); }); + + it("should fire processingComplete when fireProcessingComplete is called", function() { + var spy = jasmine.createSpy(), + doclets = {doclets: ['a','b']}; + parser.on('processingComplete', spy).fireProcessingComplete(doclets); + expect(spy).toHaveBeenCalled(); + expect(spy.mostRecentCall.args[0]).toEqual(doclets); + }); it("should be able to parse its own source file", function() { var fs = require('jsdoc/fs'),