1
0
mirror of https://github.com/JuanCanham/HackMyResume.git synced 2025-07-03 00:41:06 +01:00

Refactor helpers.

Rebind Handlebars helpers to drop the pesky options hash for standalone
helpers that don't need it. Move block helpers (which do need the
Handlebars options/context) to a separate file for special handling.
This commit is contained in:
hacksalot
2016-02-14 04:10:23 -05:00
parent 6ac2cd490b
commit 917fd8e3f3
16 changed files with 500 additions and 292 deletions

View File

@ -0,0 +1,58 @@
###*
Block helper definitions for HackMyResume / FluentCV.
@license MIT. See LICENSE.md for details.
@module helpers/generic-helpers
###
HMSTATUS = require '../core/status-codes'
LO = require 'lodash'
_ = require 'underscore'
unused = require '../utils/string'
###* Block helper function definitions. ###
BlockHelpers = module.exports =
###*
Emit the enclosed content if the resume has a section with
the specified name. Otherwise, emit an empty string ''.
###
section: ( title, options ) ->
title = title.trim().toLowerCase()
obj = LO.get this.r, title
ret = ''
if obj
if _.isArray obj
if obj.length
ret = options.fn @
else if _.isObject obj
if (obj.history && obj.history.length) || (obj.sets && obj.sets.length)
ret = options.fn @
ret
###*
Emit the enclosed content if the resume has the named
property or subproperty.
###
has: ( title, options ) ->
title = title && title.trim().toLowerCase()
if LO.get this.r, title
return options.fn this
return
###*
Return true if either value is truthy.
@method either
###
either: ( lhs, rhs, options ) -> options.fn @ if lhs || rhs