mirror of
				https://github.com/JuanCanham/HackMyResume.git
				synced 2025-10-30 20:57:26 +00:00 
			
		
		
		
	Introduce section totals inspector.
This commit is contained in:
		| @@ -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') | ||||
|     }; | ||||
|   } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user