From 12da5d3dd88f18fd0902e23d2e43122cba6e3044 Mon Sep 17 00:00:00 2001 From: billybonks Date: Sun, 18 Dec 2016 20:48:49 +0800 Subject: [PATCH 1/3] use require.resolve to get jsdoc path --- lib/commands/ember-cli-jsdoc.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/commands/ember-cli-jsdoc.js b/lib/commands/ember-cli-jsdoc.js index 0af5209..6b28fe9 100755 --- a/lib/commands/ember-cli-jsdoc.js +++ b/lib/commands/ember-cli-jsdoc.js @@ -6,11 +6,8 @@ module.exports = { run: function() { var exec = require( 'child_process' ).exec; var rsvp = require( 'rsvp' ); - var path = require( 'path' ); var chalk = require( 'chalk' ); - var cmdPath = ( Number( process.version.match( /^v(\d+)/ )[1] ) >= 5 ) ? - path.join( 'node_modules', '.bin', 'jsdoc' ) : - path.join( 'node_modules', 'ember-cli-jsdoc', 'node_modules', '.bin', 'jsdoc' ); + var cmdPath = require.resolve('jsdoc/jsdoc.js'); return new rsvp.Promise( function( resolve, reject ) { exec( cmdPath + ' -c jsdoc.json', { cwd: process.cwd() }, function( error, stdout, stderr ) { From 5c60784ac1af88de9dba90b4a10c012902b4f36d Mon Sep 17 00:00:00 2001 From: billybonks Date: Sun, 18 Dec 2016 20:52:59 +0800 Subject: [PATCH 2/3] add post build function to generate docs on build --- index.js | 3 +++ lib/commands/ember-cli-jsdoc.js | 30 +----------------------------- lib/generate-docs.js | 31 +++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 29 deletions(-) create mode 100644 lib/generate-docs.js diff --git a/index.js b/index.js index 2922883..6992650 100644 --- a/index.js +++ b/index.js @@ -8,5 +8,8 @@ module.exports = { return { 'ember-cli-jsdoc': require( './lib/commands/ember-cli-jsdoc' ) } + }, + postBuild: function(){ + return require('./lib/generate-docs')() } }; diff --git a/lib/commands/ember-cli-jsdoc.js b/lib/commands/ember-cli-jsdoc.js index 6b28fe9..f426251 100755 --- a/lib/commands/ember-cli-jsdoc.js +++ b/lib/commands/ember-cli-jsdoc.js @@ -4,34 +4,6 @@ module.exports = { name: 'ember-cli-jsdoc', run: function() { - var exec = require( 'child_process' ).exec; - var rsvp = require( 'rsvp' ); - var chalk = require( 'chalk' ); - var cmdPath = require.resolve('jsdoc/jsdoc.js'); - - return new rsvp.Promise( function( resolve, reject ) { - exec( cmdPath + ' -c jsdoc.json', { cwd: process.cwd() }, function( error, stdout, stderr ) { - console.log( stderr ); - - var shouldReject = false; - - if ( error ) { - console.log( chalk.red( 'EMBER-CLI-JSDOC: ERRORS have occurred during documentation generation' ) ); - shouldReject = true; - } - - if ( /WARNING/.test( stderr ) ) { - console.log( chalk.yellow( 'EMBER-CLI-JSDOC: WARNINGS have occurred during documentation generation' ) ); - } - - if ( shouldReject ) { - reject(); - - } else { - console.log( chalk.green( 'EMBER-CLI-JSDOC: Documentation was successfully generated' ) ); - resolve(); - } - }); - }); + return require('../generate-docs')() } } diff --git a/lib/generate-docs.js b/lib/generate-docs.js new file mode 100644 index 0000000..77dd9d2 --- /dev/null +++ b/lib/generate-docs.js @@ -0,0 +1,31 @@ +module.exports = function(configFile){ + var exec = require( 'child_process' ).exec; + var rsvp = require( 'rsvp' ); + var chalk = require( 'chalk' ); + var cmdPath = require.resolve('jsdoc/jsdoc.js'); + var configFile = configFile || 'jsdoc.json' + return new rsvp.Promise( function( resolve, reject ) { + exec( cmdPath + ' -c '+ configFile, { cwd: process.cwd() }, function( error, stdout, stderr ) { + console.log( stderr ); + + var shouldReject = false; + + if ( error ) { + console.log( chalk.red( 'EMBER-CLI-JSDOC: ERRORS have occurred during documentation generation' ) ); + shouldReject = true; + } + + if ( /WARNING/.test( stderr ) ) { + console.log( chalk.yellow( 'EMBER-CLI-JSDOC: WARNINGS have occurred during documentation generation' ) ); + } + + if ( shouldReject ) { + reject(); + + } else { + console.log( chalk.green( 'EMBER-CLI-JSDOC: Documentation was successfully generated' ) ); + resolve(); + } + }); + }); +} From 877dac4b3cda10e525223ae5deb3f722627ce6f5 Mon Sep 17 00:00:00 2001 From: billybonks Date: Sun, 18 Dec 2016 20:56:24 +0800 Subject: [PATCH 3/3] add options --- index.js | 8 ++++++-- lib/commands/ember-cli-jsdoc.js | 9 ++++----- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/index.js b/index.js index 6992650..d374411 100644 --- a/index.js +++ b/index.js @@ -3,13 +3,17 @@ module.exports = { name: 'ember-cli-jsdoc', - + included: function(app) { + this.jsdocOptions = app.options.jsdoc || {}; + }, includedCommands: function() { return { 'ember-cli-jsdoc': require( './lib/commands/ember-cli-jsdoc' ) } }, postBuild: function(){ - return require('./lib/generate-docs')() + if(this.jsdocOptions.generateOnBuild) { + return require('./lib/generate-docs')(this.jsdocOptions.configFile); + } } }; diff --git a/lib/commands/ember-cli-jsdoc.js b/lib/commands/ember-cli-jsdoc.js index f426251..05e6de8 100755 --- a/lib/commands/ember-cli-jsdoc.js +++ b/lib/commands/ember-cli-jsdoc.js @@ -1,9 +1,8 @@ 'use strict'; module.exports = { - name: 'ember-cli-jsdoc', - - run: function() { - return require('../generate-docs')() - } + name: 'ember-cli-jsdoc', + run: function() { + return require('../generate-docs')() + } }