/* Copyright 2012-2015, Yahoo Inc. Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms. */ function registerHelpers(handlebars) { handlebars.registerHelper('show_picture', function (opts) { var num = Number(opts.fn(this)), rest, cls = ''; if (isFinite(num)) { if (num === 100) { cls = ' cover-full'; } num = Math.floor(num); rest = 100 - num; return '
' + '
'; } else { return ''; } }); handlebars.registerHelper('if_has_ignores', function (metrics, opts) { return (metrics.statements.skipped + metrics.functions.skipped + metrics.branches.skipped) === 0 ? '' : opts.fn(this); }); handlebars.registerHelper('show_ignores', function (metrics) { var statements = metrics.statements.skipped, functions = metrics.functions.skipped, branches = metrics.branches.skipped, result; if (statements === 0 && functions === 0 && branches === 0) { return 'none'; } result = []; if (statements > 0) { result.push(statements === 1 ? '1 statement' : statements + ' statements'); } if (functions > 0) { result.push(functions === 1 ? '1 function' : functions + ' functions'); } if (branches > 0) { result.push(branches === 1 ? '1 branch' : branches + ' branches'); } return result.join(', '); }); handlebars.registerHelper('show_lines', function (opts) { var maxLines = Number(opts.fn(this)), i, array = []; for (i = 0; i < maxLines; i += 1) { array[i] = i + 1; } return array.join('\n'); }); handlebars.registerHelper('show_line_execution_counts', function (context) { var array = []; context.forEach(function (data) { array.push('' + data.hits + ''); }); return array.join('\n'); }); handlebars.registerHelper('show_code', function (context /*, opts */) { return context.join('\n'); }); } module.exports = { registerHelpers: registerHelpers };