Source: template/engine.js

define(['hbs', './connector', './methods'], function(Handlebars, TemplateConnector, templateMethods) {
  'use strict';

  /**
   * @module lyria/template/engine
   * @requires hbs
   * @requires lyria/template/connector
   * @requires lyria/template/methods
   */

  var noop = function() {
  };

  /**
   * @class
   * @alias module:lyria/template/engine
   *
   * @param {Object} templateConnector
   */
  var TemplateEngine = function(templateConnector) {
    if ( templateConnector instanceof TemplateConnector) {
      for (var i = 0, j = templateMethods.length; i < j; i++) {
        (function(iterator) {
          if ((templateConnector[iterator] != null) && ( typeof templateConnector[iterator] === 'function')) {
            TemplateEngine[iterator] = templateConnector[iterator];
          } else {
            TemplateEngine[iterator] = noop;
          }
        })(templateMethods[i]);
      }
    }
  };

  if (Handlebars) {
    var handlebarsConnector = new TemplateConnector({
      compile: function() {
        return Handlebars.template.apply(this, arguments);
      },
      globalHelpers: function() {
        return Handlebars.helpers;
      }
    });

    new TemplateEngine(handlebarsConnector);
  }
  
  return TemplateEngine;

});
DocStrap Copyright © 2012-2013 The contributors to the JSDoc3 and DocStrap projects.
Documentation generated by JSDoc 3.2.2 on Sun Jan 26 2014 20:12:45 GMT+0100 (MEZ) using the DocStrap template.