1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2025-09-10 16:31:58 +01:00

refactor: remove AbstractResume base class

(1) AbstractResume adds complexity without contributing utility. There's not
really a clean "class" abstraction in JavaScript to begin with; CoffeeScript
classes, as nice as they are syntactically, occlude the issue even further.

(2) AbstractResume currently functions as a container for exactly two functions
which arguably should live outside the resume class anyway.
This commit is contained in:
hacksalot
2018-02-04 22:49:58 -05:00
parent 2767b16b47
commit 8dca5b76e7
10 changed files with 223 additions and 249 deletions

View File

@@ -14,7 +14,6 @@ PATH = require('path')
MD = require('marked')
CONVERTER = require('fresh-jrs-converter')
moment = require('moment')
AbstractResume = require('./abstract-resume')
###*
@@ -22,7 +21,7 @@ A JRS resume or CV. JRS resumes are backed by JSON, and each JRSResume object
is an instantiation of that JSON decorated with utility methods.
@class JRSResume
###
class JRSResume extends AbstractResume
class JRSResume# extends AbstractResume
@@ -49,8 +48,9 @@ class JRSResume extends AbstractResume
parseJSON: ( rep, opts ) ->
opts = opts || { };
if opts.privatize
scrubber = require '../utils/resume-scrubber'
# Ignore any element with the 'ignore: true' or 'private: true' designator.
{ scrubbed, ignoreList, privateList } = @scrubResume rep, opts
{ scrubbed, ignoreList, privateList } = scrubber.scrubResume rep, opts
# Extend resume properties onto ourself.
extend true, this, if opts.privatize then scrubbed else rep
@@ -188,7 +188,8 @@ class JRSResume extends AbstractResume
duration: (unit) ->
super('work', 'startDate', 'endDate', unit)
inspector = require '../inspectors/duration-inspector';
inspector.run @, 'work', 'startDate', 'endDate', unit