mirror of
https://github.com/JuanCanham/HackMyResume.git
synced 2024-11-05 01:56:21 +00:00
Introduce section totals inspector.
This commit is contained in:
parent
0a8ee721e8
commit
c3ec3f28bd
@ -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",
|
||||
|
@ -193,5 +193,6 @@ function splitSrcDest() {
|
||||
Simple logging placeholder.
|
||||
*/
|
||||
function logMsg( msg ) {
|
||||
msg = msg || '';
|
||||
opts.silent || console.log( msg );
|
||||
}
|
||||
|
66
src/inspectors/totals-inspector.js
Normal file
66
src/inspectors/totals-inspector.js
Normal 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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
}());
|
@ -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')
|
||||
};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user