mirror of
https://github.com/JuanCanham/HackMyResume.git
synced 2024-11-05 09:56:22 +00:00
Add support for .ignore flag in FRESH and JRS resumes.
Preliminary support for ".ignore" on any non-leaf FRESH or JRS node. Nodes (employment entries, education stints, etc.) decorated with ".ignore" will be treated by HMR as if they weren't present.
This commit is contained in:
parent
47f6aff561
commit
201f39442e
@ -74,6 +74,7 @@
|
|||||||
"slash": "^1.0.0",
|
"slash": "^1.0.0",
|
||||||
"string-padding": "^1.0.2",
|
"string-padding": "^1.0.2",
|
||||||
"string.prototype.startswith": "^0.2.0",
|
"string.prototype.startswith": "^0.2.0",
|
||||||
|
"traverse": "^0.6.6",
|
||||||
"underscore": "^1.8.3",
|
"underscore": "^1.8.3",
|
||||||
"webshot": "^0.16.0",
|
"webshot": "^0.16.0",
|
||||||
"word-wrap": "^1.1.0",
|
"word-wrap": "^1.1.0",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
Definition of the FRESHResume class.
|
Definition of the FRESHResume class.
|
||||||
@license MIT. See LICENSE.md for details.
|
@license MIT. See LICENSE.md for details.
|
||||||
@module fresh-resume.js
|
@module core/fresh-resume
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ Definition of the FRESHResume class.
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Initialize the the FreshResume from string.
|
Initialize the the FreshResume from JSON string data.
|
||||||
*/
|
*/
|
||||||
FreshResume.prototype.parse = function( stringData, opts ) {
|
FreshResume.prototype.parse = function( stringData, opts ) {
|
||||||
return this.parseJSON( JSON.parse( stringData ), opts );
|
return this.parseJSON( JSON.parse( stringData ), opts );
|
||||||
@ -66,13 +66,24 @@ Definition of the FRESHResume class.
|
|||||||
{
|
{
|
||||||
date: Perform safe date conversion.
|
date: Perform safe date conversion.
|
||||||
sort: Sort resume items by date.
|
sort: Sort resume items by date.
|
||||||
computer: Prepare computed resume totals.
|
compute: Prepare computed resume totals.
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
FreshResume.prototype.parseJSON = function( rep, opts ) {
|
FreshResume.prototype.parseJSON = function( rep, opts ) {
|
||||||
|
|
||||||
|
// Ignore any element with the 'ignore: true' designator.
|
||||||
|
var that = this, traverse = require('traverse'), ignoreList = [];
|
||||||
|
var scrubbed = traverse( rep ).map( function( x ) {
|
||||||
|
if( !this.isLeaf && this.node.ignore ) {
|
||||||
|
if ( this.node.ignore === true || this.node.ignore === 'true' ) {
|
||||||
|
ignoreList.push( this.node );
|
||||||
|
this.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// Now apply the resume representation onto this object
|
// Now apply the resume representation onto this object
|
||||||
extend( true, this, rep );
|
extend( true, this, scrubbed );
|
||||||
|
|
||||||
// If the resume already has a .imp object, then we are being called from
|
// If the resume already has a .imp object, then we are being called from
|
||||||
// the .dupe method, and there's no need to do any post processing
|
// the .dupe method, and there's no need to do any post processing
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
Definition of the JRSResume class.
|
Definition of the JRSResume class.
|
||||||
@license MIT. See LICENSE.md for details.
|
@license MIT. See LICENSE.md for details.
|
||||||
@module jrs-resume.js
|
@module core/jrs-resume
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@ -60,14 +60,35 @@ Definition of the JRSResume class.
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Initialize the JRSResume from JSON.
|
Initialize the JRSResume object from JSON.
|
||||||
Open and parse the specified JRS resume. Merge the JSON object model onto this
|
Open and parse the specified JRS resume. Merge the JSON object model onto
|
||||||
Sheet instance with extend() and convert sheet dates to a safe & consistent
|
this Sheet instance with extend() and convert sheet dates to a safe &
|
||||||
format. Then sort each section by startDate descending.
|
consistent format. Then sort each section by startDate descending.
|
||||||
|
@param rep {Object} The raw JSON representation.
|
||||||
|
@param opts {Object} Resume loading and parsing options.
|
||||||
|
{
|
||||||
|
date: Perform safe date conversion.
|
||||||
|
sort: Sort resume items by date.
|
||||||
|
compute: Prepare computed resume totals.
|
||||||
|
}
|
||||||
*/
|
*/
|
||||||
JRSResume.prototype.parseJSON = function( rep, opts ) {
|
JRSResume.prototype.parseJSON = function( rep, opts ) {
|
||||||
opts = opts || { };
|
opts = opts || { };
|
||||||
extend( true, this, rep );
|
|
||||||
|
// Ignore any element with the 'ignore: true' designator.
|
||||||
|
var that = this, traverse = require('traverse'), ignoreList = [];
|
||||||
|
var scrubbed = traverse( rep ).map( function( x ) {
|
||||||
|
if( !this.isLeaf && this.node.ignore ) {
|
||||||
|
if ( this.node.ignore === true || this.node.ignore === 'true' ) {
|
||||||
|
ignoreList.push( this.node );
|
||||||
|
this.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Extend resume properties onto ourself.
|
||||||
|
extend( true, this, scrubbed );
|
||||||
|
|
||||||
// Set up metadata
|
// Set up metadata
|
||||||
if( opts.imp === undefined || opts.imp ) {
|
if( opts.imp === undefined || opts.imp ) {
|
||||||
this.basics.imp = this.basics.imp || { };
|
this.basics.imp = this.basics.imp || { };
|
||||||
|
Loading…
Reference in New Issue
Block a user