107 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			107 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | /* | ||
|  |  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) { | ||
|  |         let num = Number(opts.fn(this)); | ||
|  |         let rest; | ||
|  |         let 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', metrics => { | ||
|  |         const statements = metrics.statements.skipped; | ||
|  |         const functions = metrics.functions.skipped; | ||
|  |         const branches = metrics.branches.skipped; | ||
|  | 
 | ||
|  |         if (statements === 0 && functions === 0 && branches === 0) { | ||
|  |             return '<span class="ignore-none">none</span>'; | ||
|  |         } | ||
|  | 
 | ||
|  |         const 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) { | ||
|  |         const maxLines = Number(opts.fn(this)); | ||
|  |         let i; | ||
|  |         const array = []; | ||
|  |         for (i = 0; i < maxLines; i += 1) { | ||
|  |             const nextNum = i + 1; | ||
|  |             array[i] = | ||
|  |                 "<a name='L" + | ||
|  |                 nextNum + | ||
|  |                 "'></a><a href='#L" + | ||
|  |                 nextNum + | ||
|  |                 "'>" + | ||
|  |                 nextNum + | ||
|  |                 '</a>'; | ||
|  |         } | ||
|  |         return array.join('\n'); | ||
|  |     }); | ||
|  | 
 | ||
|  |     handlebars.registerHelper('show_line_execution_counts', context => { | ||
|  |         const array = []; | ||
|  |         context.forEach(data => { | ||
|  |             array.push( | ||
|  |                 '<span class="cline-any cline-' + | ||
|  |                     data.covered + | ||
|  |                     '">' + | ||
|  |                     data.hits + | ||
|  |                     '</span>' | ||
|  |             ); | ||
|  |         }); | ||
|  |         return array.join('\n'); | ||
|  |     }); | ||
|  | 
 | ||
|  |     handlebars.registerHelper('show_code', (context /*, opts */) => | ||
|  |         context.join('\n') | ||
|  |     ); | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = { | ||
|  |     registerHelpers | ||
|  | }; |