1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- /*
- 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 '<div class="cover-fill' + cls + '" style="width: ' + num + '%;"></div>' +
- '<div class="cover-empty" style="width:' + rest + '%;"></div>';
- } 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 '<span class="ignore-none">none</span>';
- }
- 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('<span class="cline-any cline-' + data.covered + '">' + data.hits + '</span>');
- });
- return array.join('\n');
- });
- handlebars.registerHelper('show_code', function (context /*, opts */) {
- return context.join('\n');
- });
- }
- module.exports = {
- registerHelpers: registerHelpers
- };
|