HackMyResume/src/inspectors/totals-inspector.js

48 lines
1.2 KiB
JavaScript

/*
* decaffeinate suggestions:
* DS102: Remove unnecessary code created because of implicit returns
* Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
*/
/**
Section analysis for HackMyResume.
@license MIT. See LICENSE.md for details.
@module inspectors/totals-inspector
*/
const _ = require('underscore');
const FluentDate = require('../core/fluent-date');
/**
Retrieve sectional overview and summary information.
@class totalsInspector
*/
const totalsInspector = (module.exports = {
moniker: 'totals-inspector',
/**
Run the Totals Inspector on a resume.
@method run
@return An object containing summary information for each section on the
resume.
*/
run( rez ) {
const sectionTotals = { };
_.each(rez, function(val, key) {
if (_.isArray( val ) && !_.isString(val)) {
return sectionTotals[ key ] = val.length;
} else if (val.history && _.isArray( val.history )) {
return sectionTotals[ key ] = val.history.length;
} else if (val.sets && _.isArray( val.sets )) {
return sectionTotals[ key ] = val.sets.length;
}
});
return {
totals: sectionTotals,
numSections: Object.keys( sectionTotals ).length
};
}
});