1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2024-11-22 08:20:11 +00:00

Update JS.

Keep dist/ updated with src/ for the CLI and require() folks.
(package.json goes off dist).
This commit is contained in:
hacksalot 2016-02-15 16:38:01 -05:00
parent 214c53a3ab
commit a3ed56dd15
7 changed files with 54 additions and 29 deletions

4
dist/cli/main.js vendored
View File

@ -76,7 +76,7 @@ Definition of the `main` function.
x = splitSrcDest.call(this); x = splitSrcDest.call(this);
execute.call(this, x.src, x.dst, this.opts(), logMsg); execute.call(this, x.src, x.dst, this.opts(), logMsg);
}); });
program.command('analyze')["arguments"]('<sources...>').description('Analyze one or more resumes.').action(function(sources) { program.command('analyze')["arguments"]('<sources...>').option('--private', 'Include resume fields marked as private', false).description('Analyze one or more resumes.').action(function(sources) {
execute.call(this, sources, [], this.opts(), logMsg); execute.call(this, sources, [], this.opts(), logMsg);
}); });
program.command('peek')["arguments"]('<sources...>').description('Peek at a resume field or section').action(function(sources, sectionOrField) { program.command('peek')["arguments"]('<sources...>').description('Peek at a resume field or section').action(function(sources, sectionOrField) {
@ -84,7 +84,7 @@ Definition of the `main` function.
dst = sources && sources.length > 1 ? [sources.pop()] : []; dst = sources && sources.length > 1 ? [sources.pop()] : [];
execute.call(this, sources, dst, this.opts(), logMsg); execute.call(this, sources, dst, this.opts(), logMsg);
}); });
program.command('build').alias('generate').option('-t --theme <theme>', 'Theme name or path').option('-n --no-prettify', 'Disable HTML prettification', true).option('-c --css <option>', 'CSS linking / embedding').option('-p --pdf <engine>', 'PDF generation engine').option('--no-sort', 'Sort resume sections by date', false).option('--tips', 'Display theme tips and warnings.', false).description('Generate resume to multiple formats').action(function(sources, targets, options) { program.command('build').alias('generate').option('-t --theme <theme>', 'Theme name or path').option('-n --no-prettify', 'Disable HTML prettification', true).option('-c --css <option>', 'CSS linking / embedding').option('-p --pdf <engine>', 'PDF generation engine').option('--no-sort', 'Sort resume sections by date', false).option('--tips', 'Display theme tips and warnings.', false).option('--private', 'Include resume fields marked as private', false).description('Generate resume to multiple formats').action(function(sources, targets, options) {
var x; var x;
x = splitSrcDest.call(this); x = splitSrcDest.call(this);
execute.call(this, x.src, x.dst, this.opts(), logMsg); execute.call(this, x.src, x.dst, this.opts(), logMsg);

1
dist/cli/use.txt vendored
View File

@ -19,6 +19,7 @@ Available options:
--format -f The format (FRESH or JSON Resume) to use. --format -f The format (FRESH or JSON Resume) to use.
--debug -d Emit extended debugging info. --debug -d Emit extended debugging info.
--assert -a Treat resume validation warnings as errors. --assert -a Treat resume validation warnings as errors.
--private Include resume fields marked as private
--no-colors Disable terminal colors. --no-colors Disable terminal colors.
--tips Display theme messages and tips. --tips Display theme messages and tips.
--help -h Display help documentation. --help -h Display help documentation.

View File

@ -62,6 +62,41 @@ Definition of the AbstractResume class.
return lastDate.diff(firstDate, unit); return lastDate.diff(firstDate, unit);
}; };
/**
Removes ignored or private fields from a resume object
@returns an object with the following structure:
{
scrubbed: the processed resume object
ignoreList: an array of ignored nodes that were removed
privateList: an array of private nodes that were removed
}
*/
AbstractResume.prototype.scrubResume = function(rep, opts) {
var ignoreList, includePrivates, privateList, scrubbed, traverse;
traverse = require('traverse');
ignoreList = [];
privateList = [];
includePrivates = (opts != null ? opts["private"] : void 0) == null ? true : opts != null ? opts["private"] : void 0;
scrubbed = traverse(rep).map(function(x) {
if (!this.isLeaf) {
if (this.node.ignore === true || this.node.ignore === 'true') {
ignoreList.push(this.node);
return this.remove();
} else if ((this.node["private"] === true || this.node["private"] === 'true') && !includePrivates) {
privateList.push(this.node);
return this.remove();
}
}
});
return {
scrubbed: scrubbed,
ingoreList: ignoreList,
privateList: privateList
};
};
return AbstractResume; return AbstractResume;
})(); })();

View File

@ -77,20 +77,11 @@ Definition of the FRESHResume class.
*/ */
FreshResume.prototype.parseJSON = function(rep, opts) { FreshResume.prototype.parseJSON = function(rep, opts) {
var ignoreList, ref, scrubbed, that, traverse; var ignoreList, privateList, ref, ref1, scrubbed, that;
that = this; that = this;
traverse = require('traverse'); ref = this.scrubResume(rep, opts), scrubbed = ref.scrubbed, ignoreList = ref.ignoreList, privateList = ref.privateList;
ignoreList = [];
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);
return this.remove();
}
}
});
extend(true, this, scrubbed); extend(true, this, scrubbed);
if (!((ref = this.imp) != null ? ref.processed : void 0)) { if (!((ref1 = this.imp) != null ? ref1.processed : void 0)) {
opts = opts || {}; opts = opts || {};
if (opts.imp === void 0 || opts.imp) { if (opts.imp === void 0 || opts.imp) {
this.imp = this.imp || {}; this.imp = this.imp || {};

View File

@ -71,21 +71,12 @@ Definition of the JRSResume class.
*/ */
JRSResume.prototype.parseJSON = function(rep, opts) { JRSResume.prototype.parseJSON = function(rep, opts) {
var ignoreList, ref, scrubbed, that, traverse; var ignoreList, privateList, ref, ref1, scrubbed, that;
opts = opts || {}; opts = opts || {};
that = this; that = this;
traverse = require('traverse'); ref = this.scrubResume(rep, opts), scrubbed = ref.scrubbed, ignoreList = ref.ignoreList, privateList = ref.privateList;
ignoreList = [];
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);
return this.remove();
}
}
});
extend(true, this, scrubbed); extend(true, this, scrubbed);
if (!((ref = this.imp) != null ? ref.processed : void 0)) { if (!((ref1 = this.imp) != null ? ref1.processed : void 0)) {
opts = opts || {}; opts = opts || {};
if (opts.imp === void 0 || opts.imp) { if (opts.imp === void 0 || opts.imp) {
this.imp = this.imp || {}; this.imp = this.imp || {};

View File

@ -56,7 +56,10 @@ Implementation of the 'analyze' verb for HackMyResume.
var r; var r;
r = ResumeFactory.loadOne(src, { r = ResumeFactory.loadOne(src, {
format: 'FRESH', format: 'FRESH',
objectify: true objectify: true,
inner: {
"private": opts["private"] === true
}
}, this); }, this);
if (opts.assert && this.hasError()) { if (opts.assert && this.hasError()) {
return {}; return {};

8
dist/verbs/build.js vendored
View File

@ -109,7 +109,8 @@ Implementation of the 'build' verb for HackMyResume.
objectify: false, objectify: false,
quit: true, quit: true,
inner: { inner: {
sort: _opts.sort sort: _opts.sort,
"private": _opts["private"]
} }
}, this); }, this);
problemSheets = _.filter(sheetObjects, function(so) { problemSheets = _.filter(sheetObjects, function(so) {
@ -198,7 +199,9 @@ Implementation of the 'build' verb for HackMyResume.
r: rez, r: rez,
theme: theme theme: theme
}); });
_rezObj = new RTYPES[toFormat]().parseJSON(rez); _rezObj = new RTYPES[toFormat]().parseJSON(rez, {
"private": _opts["private"]
});
targets = _expand(dst, theme); targets = _expand(dst, theme);
_.each(targets, function(t) { _.each(targets, function(t) {
var ref; var ref;
@ -233,6 +236,7 @@ Implementation of the 'build' verb for HackMyResume.
var that; var that;
_opts.theme = (opts.theme && opts.theme.toLowerCase().trim()) || 'modern'; _opts.theme = (opts.theme && opts.theme.toLowerCase().trim()) || 'modern';
_opts.prettify = opts.prettify === true; _opts.prettify = opts.prettify === true;
_opts["private"] = opts["private"] === true;
_opts.css = opts.css; _opts.css = opts.css;
_opts.pdf = opts.pdf; _opts.pdf = opts.pdf;
_opts.wrap = opts.wrap || 60; _opts.wrap = opts.wrap || 60;