1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2025-07-03 17:01:05 +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

@ -18,7 +18,6 @@ MD = require 'marked'
CONVERTER = require 'fresh-jrs-converter'
JRSResume = require './jrs-resume'
FluentDate = require './fluent-date'
AbstractResume = require './abstract-resume'
@ -27,7 +26,7 @@ A FRESH resume or CV. FRESH resumes are backed by JSON, and each FreshResume
object is an instantiation of that JSON decorated with utility methods.
@constructor
###
class FreshResume extends AbstractResume
class FreshResume# extends AbstractResume
@ -55,7 +54,8 @@ class FreshResume extends AbstractResume
if opts and opts.privatize
# Ignore any element with the 'ignore: true' or 'private: true' designator.
{ scrubbed, ignoreList, privateList } = @scrubResume rep, opts
scrubber = require '../utils/resume-scrubber'
{ scrubbed, ignoreList, privateList } = scrubber.scrubResume rep, opts
# Now apply the resume representation onto this object
extend true, @, if opts and opts.privatize then scrubbed else rep
@ -299,7 +299,9 @@ class FreshResume extends AbstractResume
duration: (unit) ->
super('employment.history', 'start', 'end', unit)
inspector = require '../inspectors/duration-inspector'
inspector.run @, 'employment.history', 'start', 'end', unit