Code coverage report for src/velocity.js

Statements: 100% (21 / 21)      Branches: 100% (8 / 8)      Functions: 100% (3 / 3)      Lines: 100% (21 / 21)      Ignored: none     

All files » src/ » velocity.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 421 1 1 1   1 1   1 162         161 509 509 203 203 21         161     1           1   72 72 72     1  
var Parser  = require('./parse/');
var utils   = require('./utils');
var Compile = require('./compile/');
var Helper = require('./helper/index');
 
Compile.Parser = Parser;
Parser._parse = Parser.parse;
 
Parser.parse = function (str) {
  var asts = Parser._parse(str);
 
  /**
   * remove all newline after all direction such as `#set, #each`
   */
  utils.forEach(asts, function trim(ast, i){
    var TRIM_REG = /^[ \t]*\n/;
    if (ast.type && ast.type !== 'references') {
      var _ast = asts[i + 1];
      if (typeof _ast === 'string' && TRIM_REG.test(_ast)) {
        asts[i + 1] = _ast.replace(TRIM_REG, '');
      }
    }
  });
 
  return utils.makeLevel(asts);
};
 
var Velocity = {
  Parser  : Parser,
  Compile : Compile,
  Helper: Helper
};
 
Velocity.render = function (template, context, macros) {
 
  var asts = Parser.parse(template);
  var compile = new Compile(asts);
  return compile.render(context, macros);
};
 
module.exports = Velocity;