mirror of
				https://github.com/JuanCanham/HackMyResume.git
				synced 2025-10-31 05:07:26 +00:00 
			
		
		
		
	Move commands to Verb hierarchy
Move flat command functions (BUILD, ANALYZE, etc.) to a shallow Verb hierarchy. Allow command verbs to inherit common functionality and prep for better debugging/logging as well as test mocks.
This commit is contained in:
		| @@ -14,14 +14,25 @@ Implementation of the 'analyze' verb for HackMyResume. | ||||
|     , PATH = require('path') | ||||
|     , _ = require('underscore') | ||||
|     , ResumeFactory = require('../core/resume-factory') | ||||
|     , Verb = require('../core/verb')     | ||||
|     , chalk = require('chalk'); | ||||
|  | ||||
|  | ||||
|  | ||||
|   var AnalyzeVerb = module.exports = Verb.extend({ | ||||
|  | ||||
|     invoke: function() { | ||||
|       analyze.apply( this, arguments ); | ||||
|     } | ||||
|  | ||||
|   }); | ||||
|  | ||||
|  | ||||
|  | ||||
|   /** | ||||
|   Run the 'analyze' command. | ||||
|   */ | ||||
|   module.exports = function analyze( sources, dst, opts, logger ) { | ||||
|   function analyze( sources, dst, opts, logger ) { | ||||
|     var _log = logger || console.log; | ||||
|     if( !sources || !sources.length ) throw { fluenterror: 3 }; | ||||
|  | ||||
| @@ -33,8 +44,7 @@ Implementation of the 'analyze' verb for HackMyResume. | ||||
|       }); | ||||
|       result.error || _analyze( result, nlzrs, opts, _log ); | ||||
|     }); | ||||
|  | ||||
|   }; | ||||
|   } | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -26,9 +26,17 @@ Implementation of the 'generate' verb for HackMyResume. | ||||
|     , extend = require('../utils/extend') | ||||
|     , chalk = require('chalk') | ||||
|     , pad = require('string-padding') | ||||
|     , Verb = require('../core/verb') | ||||
|     , _err, _log, rez; | ||||
|  | ||||
|  | ||||
|   var BuildVerb = module.exports = Verb.extend({ | ||||
|  | ||||
|     invoke: function() { | ||||
|       build.apply( this, arguments ); | ||||
|     } | ||||
|  | ||||
|   }); | ||||
|  | ||||
|   /** | ||||
|   Given a source resume in FRESH or JRS format, a destination resume path, and a | ||||
| @@ -349,8 +357,4 @@ Implementation of the 'generate' verb for HackMyResume. | ||||
|  | ||||
|  | ||||
|  | ||||
|   module.exports = build; | ||||
|  | ||||
|  | ||||
|  | ||||
| }()); | ||||
|   | ||||
| @@ -12,14 +12,24 @@ Implementation of the 'convert' verb for HackMyResume. | ||||
|  | ||||
|   var ResumeFactory = require('../core/resume-factory') | ||||
|     , chalk = require('chalk') | ||||
|     , Verb = require('../core/verb')     | ||||
|     , HACKMYSTATUS = require('../core/status-codes'); | ||||
|  | ||||
|  | ||||
|   var ConvertVerb = module.exports = Verb.extend({ | ||||
|  | ||||
|     invoke: function() { | ||||
|       convert.apply( this, arguments ); | ||||
|     } | ||||
|  | ||||
|   }); | ||||
|  | ||||
|  | ||||
|  | ||||
|   /** | ||||
|   Convert between FRESH and JRS formats. | ||||
|   */ | ||||
|   module.exports = function convert( srcs, dst, opts, logger ) { | ||||
|   function convert( srcs, dst, opts, logger ) { | ||||
|  | ||||
|     // Housekeeping | ||||
|     var _log = logger || console.log; | ||||
| @@ -62,7 +72,7 @@ Implementation of the 'convert' verb for HackMyResume. | ||||
|  | ||||
|     }); | ||||
|  | ||||
|   }; | ||||
|   } | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -9,12 +9,23 @@ Implementation of the 'create' verb for HackMyResume. | ||||
|   var MKDIRP = require('mkdirp') | ||||
|     , PATH = require('path') | ||||
|     , chalk = require('chalk') | ||||
|     , Verb = require('../core/verb') | ||||
|     , HACKMYSTATUS = require('../core/status-codes'); | ||||
|  | ||||
|  | ||||
|   var CreateVerb = module.exports = Verb.extend({ | ||||
|  | ||||
|     invoke: function() { | ||||
|       create.apply( this, arguments ); | ||||
|     } | ||||
|  | ||||
|   }); | ||||
|  | ||||
|  | ||||
|   /** | ||||
|   Create a new empty resume in either FRESH or JRS format. | ||||
|   */ | ||||
|   module.exports = function create( src, dst, opts, logger ) { | ||||
|   function create( src, dst, opts, logger ) { | ||||
|     var _log = logger || console.log; | ||||
|     if( !src || !src.length ) throw { fluenterror: HACKMYSTATUS.createNameMissing }; | ||||
|     src.forEach( function( t ) { | ||||
| @@ -26,6 +37,6 @@ Implementation of the 'create' verb for HackMyResume. | ||||
|       RezClass.default().save(t); | ||||
|       //FLUENT[ safeFormat + 'Resume' ].default().save( t ); | ||||
|     }); | ||||
|   }; | ||||
|   } | ||||
|  | ||||
| }()); | ||||
|   | ||||
| @@ -10,9 +10,20 @@ Implementation of the 'validate' verb for HackMyResume. | ||||
|   var ResumeFactory = require('../core/resume-factory'); | ||||
|   var SyntaxErrorEx = require('../utils/syntax-error-ex'); | ||||
|   var chalk = require('chalk'); | ||||
|   var Verb = require('../core/verb'); | ||||
|   var HACKMYSTATUS = require('../core/status-codes'); | ||||
|  | ||||
|   module.exports = | ||||
|  | ||||
|  | ||||
|   var ValidateVerb = module.exports = Verb.extend({ | ||||
|  | ||||
|     invoke: function() { | ||||
|       validate.apply( this, arguments ); | ||||
|     } | ||||
|  | ||||
|   }); | ||||
|  | ||||
|  | ||||
|  | ||||
|   /** | ||||
|   Validate 1 to N resumes in either FRESH or JSON Resume format. | ||||
| @@ -99,6 +110,6 @@ Implementation of the 'validate' verb for HackMyResume. | ||||
|       } | ||||
|  | ||||
|     }); | ||||
|   }; | ||||
|   } | ||||
|  | ||||
| }()); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user