Code coverage report for src/compile/template.js

Statements: 85.71% (18 / 21)      Branches: 75% (12 / 16)      Functions: 100% (2 / 2)      Lines: 85.71% (18 / 21)      Ignored: none     

All files » src/compile/ » template.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53    1   1     1   1     4           4 1   3 3     4 6 6     6 4 4     4   4       4                      
'use strict';
 
require('../globals');
 
var groupdef = require('./group').def,
  vlfield = require('../field');
 
module.exports = template;
 
function template(encoding, layout, stats) {
  // jshint unused:false
 
  var data = {name: RAW, format: {}},
    table = {name: TABLE, source: RAW},
    dataUrl = encoding.data('url'),
    dataType = encoding.data('formatType'),
    values = encoding.data('values');
 
  if (encoding.hasValues()) {
    data.values = values;
  } else {
    data.url = dataUrl;
    data.format.type = dataType;
  }
 
  encoding.forEach(function(field, encType) {
    var name;
    Iif (field.type == T) {
      data.format.parse = data.format.parse || {};
      data.format.parse[field.name] = 'date';
    } else if (field.type == Q) {
      data.format.parse = data.format.parse || {};
      Iif (vlfield.isCount(field)) {
        name = 'count';
      } else {
        name = field.name;
      }
      data.format.parse[name] = 'number';
    }
  });
 
  return {
    width: layout.width,
    height: layout.height,
    padding: 'auto',
    data: [data, table],
    marks: [groupdef('cell', {
      width: layout.cellWidth ? {value: layout.cellWidth} : undefined,
      height: layout.cellHeight ? {value: layout.cellHeight} : undefined
    })]
  };
}