1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2024-11-05 01:56:21 +00:00

fix: resolve issues around @@@@ characters in dates

Simplify resume freezing; avoid transformations on foreign fields. Fixes #198
but needs followup to allow users to specify how and when freezing, encoding,
and transformations occur.
This commit is contained in:
hacksalot 2018-02-04 23:06:34 -05:00
parent 8dca5b76e7
commit 8c81a54565
No known key found for this signature in database
GPG Key ID: 2F343EC247CA4B06
2 changed files with 10 additions and 68 deletions

View File

@ -285,7 +285,7 @@ Definition of the JRSResume class.
*/ */
JRSResume.prototype.harden = function() { JRSResume.prototype.harden = function() {
var HD, HDIN, hardenStringsInObject, ret, that; var HD, HDIN, ret, that, transformer;
that = this; that = this;
ret = this.dupe(); ret = this.dupe();
HD = function(txt) { HD = function(txt) {
@ -294,42 +294,10 @@ Definition of the JRSResume class.
HDIN = function(txt) { HDIN = function(txt) {
return HD(txt); return HD(txt);
}; };
hardenStringsInObject = function(obj, inline) { transformer = require('../utils/string-transformer');
if (!obj) { return transformer(ret, ['skills', 'url', 'website', 'startDate', 'endDate', 'releaseDate', 'date', 'phone', 'email', 'address', 'postalCode', 'city', 'country', 'region', 'safeStartDate', 'safeEndDate'], function(key, val) {
return; return HD(val);
}
inline = inline === void 0 || inline;
if (Object.prototype.toString.call(obj) === '[object Array]') {
return obj.forEach(function(elem, idx, ar) {
if (typeof elem === 'string' || elem instanceof String) {
return ar[idx] = inline ? HDIN(elem) : HD(elem);
} else {
return hardenStringsInObject(elem);
}
});
} else if (typeof obj === 'object') {
return Object.keys(obj).forEach(function(key) {
var sub;
sub = obj[key];
if (typeof sub === 'string' || sub instanceof String) {
if (_.contains(['skills', 'url', 'website', 'startDate', 'endDate', 'releaseDate', 'date', 'phone', 'email', 'address', 'postalCode', 'city', 'country', 'region'], key)) {
return;
}
if (key === 'summary') {
return obj[key] = HD(obj[key]);
} else {
return obj[key] = inline ? HDIN(obj[key]) : HD(obj[key]);
}
} else {
return hardenStringsInObject(sub);
}
});
}
};
Object.keys(ret).forEach(function(member) {
return hardenStringsInObject(ret[member]);
}); });
return ret;
}; };
return JRSResume; return JRSResume;

View File

@ -242,38 +242,12 @@ class JRSResume# extends AbstractResume
#return MD(txt || '' ).replace(/^\s*<p>|<\/p>\s*$/gi, ''); #return MD(txt || '' ).replace(/^\s*<p>|<\/p>\s*$/gi, '');
return HD txt return HD txt
# TODO: refactor recursion transformer = require '../utils/string-transformer'
hardenStringsInObject = ( obj, inline ) -> transformer ret,
[ 'skills','url','website','startDate','endDate', 'releaseDate', 'date',
return if !obj 'phone','email','address','postalCode','city','country','region',
inline = inline == undefined || inline 'safeStartDate','safeEndDate' ],
(key, val) -> HD val
if Object.prototype.toString.call( obj ) == '[object Array]'
obj.forEach (elem, idx, ar) ->
if typeof elem == 'string' || elem instanceof String
ar[idx] = if inline then HDIN(elem) else HD( elem )
else
hardenStringsInObject elem
else if typeof obj == 'object'
Object.keys( obj ).forEach (key) ->
sub = obj[key]
if typeof sub == 'string' || sub instanceof String
if _.contains(['skills','url','website','startDate','endDate',
'releaseDate','date','phone','email','address','postalCode',
'city','country','region'], key)
return
if key == 'summary'
obj[key] = HD( obj[key] )
else
obj[key] = if inline then HDIN( obj[key] ) else HD( obj[key] )
else
hardenStringsInObject sub
Object.keys( ret ).forEach (member) ->
hardenStringsInObject ret[ member ]
ret