1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2025-05-02 20:37:08 +01:00

feat: support JSON Resume edge schema

This commit is contained in:
hacksalot
2018-02-10 01:10:20 -05:00
parent 7cfdb95a04
commit 7196bff27c
4 changed files with 31 additions and 35 deletions

View File

@ -109,22 +109,18 @@ Definition of the FRESHResume class.
Save the sheet to disk in a specific format, either FRESH or JSON Resume.
*/
FreshResume.prototype.saveAs = function(filename, format, version) {
var freshVersionReg, newRep, parts, safeFormat, safeVersion;
safeFormat = (format || 'FRESH').trim();
safeVersion = version || "0";
freshVersionReg = require('../utils/fresh-version-regex');
if (!freshVersionReg().test(safeFormat)) {
throw {
badVer: safeFormat
};
}
FreshResume.prototype.saveAs = function(filename, format) {
var newRep, parts, safeFormat, useEdgeSchema;
safeFormat = (format && format.trim()) || 'FRESH';
parts = safeFormat.split('@');
if (parts[0] === 'FRESH') {
this.imp.file = filename || this.imp.file;
FS.writeFileSync(this.imp.file, this.stringify(), 'utf8');
} else if (parts[0] === 'JRS') {
newRep = CONVERTER.toJRS(this, null, parts.length > 1 ? parts[1] : "1.0.0");
useEdgeSchema = parts.length > 1 ? parts[1] === '1' : false;
newRep = CONVERTER.toJRS(this, {
edge: useEdgeSchema
});
FS.writeFileSync(filename, JRSResume.stringify(newRep), 'utf8');
} else {
throw {

14
dist/verbs/convert.js vendored
View File

@ -39,7 +39,7 @@ Implementation of the 'convert' verb for HackMyResume.
*/
_convert = function(srcs, dst, opts) {
var fmtUp, freshVerRegex, matches, results, targetSchema, targetVer;
var fmtUp, results, targetVer;
if (!srcs || !srcs.length) {
this.err(HMSTATUS.resumeNotFound, {
quit: true
@ -68,16 +68,12 @@ Implementation of the 'convert' verb for HackMyResume.
targetVer = null;
if (opts.format) {
fmtUp = opts.format.trim().toUpperCase();
freshVerRegex = require('../utils/fresh-version-regex');
matches = fmtUp.match(freshVerRegex());
if (!matches) {
if (!_.contains(['FRESH', 'FRESCA', 'JRS', 'JRS@1', 'JRS@edge'], fmtUp)) {
this.err(HMSTATUS.invalidSchemaVersion, {
data: opts.format.trim(),
quit: true
});
}
targetSchema = matches[1];
targetVer = matches[2] || '1';
}
if (this.hasError()) {
this.reject(this.errorCode);
@ -85,7 +81,7 @@ Implementation of the 'convert' verb for HackMyResume.
}
results = _.map(srcs, function(src, idx) {
var r;
r = _convertOne.call(this, src, dst, idx, targetSchema, targetVer);
r = _convertOne.call(this, src, dst, idx, fmtUp);
if (r.fluenterror) {
r.quit = opts.assert;
this.err(r.fluenterror, r);
@ -103,7 +99,7 @@ Implementation of the 'convert' verb for HackMyResume.
/** Private workhorse method. Convert a single resume. */
_convertOne = function(src, dst, idx, targetSchema, targetVer) {
_convertOne = function(src, dst, idx, targetSchema) {
var err, rez, rinfo, srcFmt, targetFormat;
rinfo = ResumeFactory.loadOne(src, {
format: null,
@ -140,7 +136,7 @@ Implementation of the 'convert' verb for HackMyResume.
dstFmt: targetFormat
});
try {
rez.saveAs(dst[idx], targetFormat, targetVer);
rez.saveAs(dst[idx], targetFormat);
} catch (_error) {
err = _error;
if (err.badVer) {