1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2024-07-01 07:50:06 +01:00

Introduce section totals inspector.

This commit is contained in:
hacksalot 2016-01-03 05:03:31 -05:00
parent 0a8ee721e8
commit c3ec3f28bd
4 changed files with 83 additions and 1 deletions

View File

@ -65,6 +65,7 @@
"phantom": "^0.8.4",
"recursive-readdir-sync": "^1.0.6",
"simple-html-tokenizer": "^0.2.0",
"string-padding": "^1.0.2",
"string.prototype.startswith": "^0.2.0",
"underscore": "^1.8.3",
"webshot": "^0.16.0",

View File

@ -193,5 +193,6 @@ function splitSrcDest() {
Simple logging placeholder.
*/
function logMsg( msg ) {
msg = msg || '';
opts.silent || console.log( msg );
}

View File

@ -0,0 +1,66 @@
/**
Totals analysis for HackMyResume.
@license MIT. See LICENSE.md for details.
@module gap-inspector.js
*/
(function() {
var _ = require('underscore');
var FluentDate = require('../core/fluent-date');
/**
Identify gaps in the candidate's employment history.
@class gapInspector
*/
var gapInspector = module.exports = {
moniker: 'totals-inspector',
/**
Run the Totals Analyzer on a resume.
@method run
@return An array of object representing gaps in the candidate's employment
history. Each object provides the start, end, and duration of the gap:
{ <-- gap
start: // A Moment.js date
end: // A Moment.js date
duration: // Gap length
}
*/
run: function( rez ) {
var ret = { };
_.each( rez, function(val, key){
if( _.isArray( val ) && !_.isString(val) ) {
ret[ key ] = val.length;
}
else if( val.history && _.isArray( val.history ) ) {
ret[ key ] = val.history.length;
}
else if( val.sets && _.isArray( val.sets ) ) {
ret[ key ] = val.sets.length;
}
});
return ret;
}
};
}());

View File

@ -53,7 +53,20 @@ Implementation of the 'analyze' verb for HackMyResume.
return val.run( resumeObject.rez );
});
console.log('Gaps: ' + info.gaps.length );
log(chalk.cyan('\nTotals: '));
var pad = require('string-padding');
_.each( info.totals, function(tot, key) {
log(chalk.cyan(pad(key + ': ',17)) + chalk.cyan.bold(pad(tot.toString(),4)));
});
log();
log(chalk.cyan('Gaps: ') + chalk.cyan.bold(info.gaps.length) +
chalk.cyan(' [') + info.gaps.map(function(g) {
var clr = 'green';
if( g.duration > 35 ) clr = 'yellow';
if( g.duration > 90 ) clr = 'red';
return chalk[clr].bold(g.duration);
}).join(', ') + chalk.cyan(']') );
}
@ -63,6 +76,7 @@ Implementation of the 'analyze' verb for HackMyResume.
*/
function _loadInspectors() {
return {
totals: require('../inspectors/totals-inspector'),
gaps: require('../inspectors/gap-inspector')
};
}