mirror of
				https://github.com/JuanCanham/HackMyResume.git
				synced 2025-10-30 12:47:26 +00:00 
			
		
		
		
	Introduce section totals inspector.
This commit is contained in:
		| @@ -65,6 +65,7 @@ | |||||||
|     "phantom": "^0.8.4", |     "phantom": "^0.8.4", | ||||||
|     "recursive-readdir-sync": "^1.0.6", |     "recursive-readdir-sync": "^1.0.6", | ||||||
|     "simple-html-tokenizer": "^0.2.0", |     "simple-html-tokenizer": "^0.2.0", | ||||||
|  |     "string-padding": "^1.0.2", | ||||||
|     "string.prototype.startswith": "^0.2.0", |     "string.prototype.startswith": "^0.2.0", | ||||||
|     "underscore": "^1.8.3", |     "underscore": "^1.8.3", | ||||||
|     "webshot": "^0.16.0", |     "webshot": "^0.16.0", | ||||||
|   | |||||||
| @@ -193,5 +193,6 @@ function splitSrcDest() { | |||||||
| Simple logging placeholder. | Simple logging placeholder. | ||||||
| */ | */ | ||||||
| function logMsg( msg ) { | function logMsg( msg ) { | ||||||
|  |   msg = msg || ''; | ||||||
|   opts.silent || console.log( 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 ); |       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() { |   function _loadInspectors() { | ||||||
|     return { |     return { | ||||||
|  |       totals: require('../inspectors/totals-inspector'), | ||||||
|       gaps: require('../inspectors/gap-inspector') |       gaps: require('../inspectors/gap-inspector') | ||||||
|     }; |     }; | ||||||
|   } |   } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user