Skip to content

Commit

Permalink
Build Y.Template.
Browse files Browse the repository at this point in the history
  • Loading branch information
ericf committed Dec 20, 2012
1 parent 907e819 commit 0ecec88
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 25 deletions.
65 changes: 43 additions & 22 deletions build/template-base/template-base-coverage.js
Expand Up @@ -26,10 +26,10 @@ _yuitest_coverage["build/template-base/template-base.js"] = {
path: "build/template-base/template-base.js", path: "build/template-base/template-base.js",
code: [] code: []
}; };
_yuitest_coverage["build/template-base/template-base.js"].code=["YUI.add('template-base', function (Y, NAME) {","","/**","Virtual rollup of the `template-base` and `template-micro` modules.","","@module template","@main template","@since 3.8.0","**/","","/**","Provides a generic API for using template engines such as Handlebars and","`Y.Template.Micro`.","","@module template","@submodule template-base","@since 3.8.0","**/","","/**","Provides a generic API for using template engines such as Handlebars and","`Y.Template.Micro`.","","### Examples","","Using with `Y.Template.Micro` (the default template engine):",""," YUI().use('template', function (Y) {"," var micro = new Y.Template(),"," html = micro.render('<%= data.message %>', {message: 'hello!'});",""," // ..."," });","","Using with Handlebars:",""," YUI().use('template-base', 'handlebars', function (Y) {"," var handlebars = new Y.Template(Y.Handlebars),"," html = handlebars.render('{{message}}', {message: 'hello!'});",""," // ..."," });","","@class Template","@param {Mixed} [engine=Y.Template.Micro] Template engine to use, such as"," `Y.Template.Micro` or `Y.Handlebars`. Defaults to `Y.Template.Micro` if not"," specified.","@constructor","@since 3.8.0","**/","","function Template(engine) {"," /**"," Template engine class.",""," @property {Mixed} engine"," @since 3.8.0"," **/"," this.engine = engine || Y.Template.Micro;",""," if (!this.engine) {"," Y.error('No template engine loaded.');"," }","}","","Template.prototype = {"," /**"," Compiles a template with the current template engine and returns a compiled"," template function.",""," @method compile"," @param {String} text Template text to compile."," @param {Object} [options] Options to pass along to the template engine. See"," template engine docs for options supported by each engine."," @return {Function} Compiled template function."," @since 3.8.0"," **/"," compile: function (text, options) {"," return this.engine.compile(text, options);"," },",""," /**"," Precompiles a template with the current template engine and returns a string"," containing JavaScript source code for the precompiled template.",""," @method precompile"," @param {String} text Template text to compile."," @param {Object} [options] Options to pass along to the template engine. See"," template engine docs for options supported by each engine."," @return {String} Source code for the precompiled template."," @since 3.8.0"," **/"," precompile: function (text, options) {"," return this.engine.precompile(text, options);"," },",""," /**"," Compiles and renders a template with the current template engine in a single"," step, and returns the rendered result.",""," @method render"," @param {String} text Template text to render."," @param {Object} data Data object to provide when rendering the template."," @param {Object} [options] Options to pass along to the template engine. See"," template engine docs for options supported by each engine."," @return {String} Rendered result."," @since 3.8.0"," **/"," render: function (text, data, options) {"," if (this.engine.render) {"," return this.engine.render(text, data, options);"," }",""," return this.engine.compile(text, options)(data, options);"," },",""," /**"," Revives a precompiled template function into an executable template function"," using the current template engine. The precompiled code must already have"," been evaluated; this method won't evaluate it for you.",""," @method revive"," @param {Function} precompiled Precompiled template function."," @param {Object} [options] Options to pass along to the template engine. See"," template engine docs for options supported by each engine."," @return {Function} Compiled template function."," @since 3.8.0"," **/"," revive: function (precompiled, options) {"," return this.engine.revive ? this.engine.revive(precompiled, options) :"," precompiled;"," }","};","","// Copy existing namespaced properties from Y.Template to the Template function","// if Y.Template already exists, then make the function the new Y.Template.","// This ensures that other modules can safely add stuff to the Y.Template","// namespace even if they're loaded before this one.","Y.Template = Y.Template ? Y.mix(Template, Y.Template) : Template;","","","}, '@VERSION@', {\"requires\": [\"yui-base\"]});"]; _yuitest_coverage["build/template-base/template-base.js"].code=["YUI.add('template-base', function (Y, NAME) {","","/**","Virtual rollup of the `template-base` and `template-micro` modules.","","@module template","@main template","@since 3.8.0","**/","","/**","Provides a generic API for using template engines such as Handlebars and","`Y.Template.Micro`.","","@module template","@submodule template-base","@since 3.8.0","**/","","/**","Provides a generic API for using template engines such as Handlebars and","`Y.Template.Micro`.","","### Examples","","Using with `Y.Template.Micro` (the default template engine):",""," YUI().use('template', function (Y) {"," var micro = new Y.Template(),"," html = micro.render('<%= data.message %>', {message: 'hello!'});",""," // ..."," });","","Using with Handlebars:",""," YUI().use('template-base', 'handlebars', function (Y) {"," var handlebars = new Y.Template(Y.Handlebars),"," html = handlebars.render('{{message}}', {message: 'hello!'});",""," // ..."," });","","@class Template","@param {Mixed} [engine=Y.Template.Micro] Template engine to use, such as"," `Y.Template.Micro` or `Y.Handlebars`. Defaults to `Y.Template.Micro` if not"," specified.","@param {Object} [defaults] Default options to use when instance methods are"," invoked.","@constructor","@since 3.8.0","**/","","function Template(engine, defaults) {"," /**"," Default options.",""," @property {Object} defaults"," @since 3.8.1"," **/"," this.defaults = defaults;",""," /**"," Template engine class.",""," @property {Mixed} engine"," @since 3.8.0"," **/"," this.engine = engine || Y.Template.Micro;",""," if (!this.engine) {"," Y.error('No template engine loaded.');"," }","}","","Template.prototype = {"," /**"," Compiles a template with the current template engine and returns a compiled"," template function.",""," @method compile"," @param {String} text Template text to compile."," @param {Object} [options] Options to pass along to the template engine. See"," template engine docs for options supported by each engine."," @return {Function} Compiled template function."," @since 3.8.0"," **/"," compile: function (text, options) {"," options = options ? Y.merge(this.defaults, options) : this.defaults;"," return this.engine.compile(text, options);"," },",""," /**"," Precompiles a template with the current template engine and returns a string"," containing JavaScript source code for the precompiled template.",""," @method precompile"," @param {String} text Template text to compile."," @param {Object} [options] Options to pass along to the template engine. See"," template engine docs for options supported by each engine."," @return {String} Source code for the precompiled template."," @since 3.8.0"," **/"," precompile: function (text, options) {"," options = options ? Y.merge(this.defaults, options) : this.defaults;"," return this.engine.precompile(text, options);"," },",""," /**"," Compiles and renders a template with the current template engine in a single"," step, and returns the rendered result.",""," @method render"," @param {String} text Template text to render."," @param {Object} data Data object to provide when rendering the template."," @param {Object} [options] Options to pass along to the template engine. See"," template engine docs for options supported by each engine."," @return {String} Rendered result."," @since 3.8.0"," **/"," render: function (text, data, options) {"," options = options ? Y.merge(this.defaults, options) : this.defaults;",""," if (this.engine.render) {"," return this.engine.render(text, data, options);"," }",""," return this.engine.compile(text, options)(data, options);"," },",""," /**"," Revives a precompiled template function into an executable template function"," using the current template engine. The precompiled code must already have"," been evaluated; this method won't evaluate it for you.",""," @method revive"," @param {Function} precompiled Precompiled template function."," @param {Object} [options] Options to pass along to the template engine. See"," template engine docs for options supported by each engine."," @return {Function} Compiled template function."," @since 3.8.0"," **/"," revive: function (precompiled, options) {"," options = options ? Y.merge(this.defaults, options) : this.defaults;",""," return this.engine.revive ? this.engine.revive(precompiled, options) :"," precompiled;"," }","};","","// Copy existing namespaced properties from Y.Template to the Template function","// if Y.Template already exists, then make the function the new Y.Template.","// This ensures that other modules can safely add stuff to the Y.Template","// namespace even if they're loaded before this one.","Y.Template = Y.Template ? Y.mix(Template, Y.Template) : Template;","","","}, '@VERSION@', {\"requires\": [\"yui-base\"]});"];
_yuitest_coverage["build/template-base/template-base.js"].lines = {"1":0,"52":0,"59":0,"61":0,"62":0,"66":0,"79":0,"94":0,"110":0,"111":0,"114":0,"130":0,"139":0}; _yuitest_coverage["build/template-base/template-base.js"].lines = {"1":0,"54":0,"61":0,"69":0,"71":0,"72":0,"76":0,"89":0,"90":0,"105":0,"106":0,"122":0,"124":0,"125":0,"128":0,"144":0,"146":0,"155":0};
_yuitest_coverage["build/template-base/template-base.js"].functions = {"Template:52":0,"compile:78":0,"precompile:93":0,"render:109":0,"revive:129":0,"(anonymous 1):1":0}; _yuitest_coverage["build/template-base/template-base.js"].functions = {"Template:54":0,"compile:88":0,"precompile:104":0,"render:121":0,"revive:143":0,"(anonymous 1):1":0};
_yuitest_coverage["build/template-base/template-base.js"].coveredLines = 13; _yuitest_coverage["build/template-base/template-base.js"].coveredLines = 18;
_yuitest_coverage["build/template-base/template-base.js"].coveredFunctions = 6; _yuitest_coverage["build/template-base/template-base.js"].coveredFunctions = 6;
_yuitest_coverline("build/template-base/template-base.js", 1); _yuitest_coverline("build/template-base/template-base.js", 1);
YUI.add('template-base', function (Y, NAME) { YUI.add('template-base', function (Y, NAME) {
Expand Down Expand Up @@ -79,31 +79,42 @@ Using with Handlebars:
@param {Mixed} [engine=Y.Template.Micro] Template engine to use, such as @param {Mixed} [engine=Y.Template.Micro] Template engine to use, such as
`Y.Template.Micro` or `Y.Handlebars`. Defaults to `Y.Template.Micro` if not `Y.Template.Micro` or `Y.Handlebars`. Defaults to `Y.Template.Micro` if not
specified. specified.
@param {Object} [defaults] Default options to use when instance methods are
invoked.
@constructor @constructor
@since 3.8.0 @since 3.8.0
**/ **/


_yuitest_coverfunc("build/template-base/template-base.js", "(anonymous 1)", 1); _yuitest_coverfunc("build/template-base/template-base.js", "(anonymous 1)", 1);
_yuitest_coverline("build/template-base/template-base.js", 52); _yuitest_coverline("build/template-base/template-base.js", 54);
function Template(engine) { function Template(engine, defaults) {
/**
Default options.
@property {Object} defaults
@since 3.8.1
**/
_yuitest_coverfunc("build/template-base/template-base.js", "Template", 54);
_yuitest_coverline("build/template-base/template-base.js", 61);
this.defaults = defaults;

/** /**
Template engine class. Template engine class.
@property {Mixed} engine @property {Mixed} engine
@since 3.8.0 @since 3.8.0
**/ **/
_yuitest_coverfunc("build/template-base/template-base.js", "Template", 52); _yuitest_coverline("build/template-base/template-base.js", 69);
_yuitest_coverline("build/template-base/template-base.js", 59);
this.engine = engine || Y.Template.Micro; this.engine = engine || Y.Template.Micro;


_yuitest_coverline("build/template-base/template-base.js", 61); _yuitest_coverline("build/template-base/template-base.js", 71);
if (!this.engine) { if (!this.engine) {
_yuitest_coverline("build/template-base/template-base.js", 62); _yuitest_coverline("build/template-base/template-base.js", 72);
Y.error('No template engine loaded.'); Y.error('No template engine loaded.');
} }
} }


_yuitest_coverline("build/template-base/template-base.js", 66); _yuitest_coverline("build/template-base/template-base.js", 76);
Template.prototype = { Template.prototype = {
/** /**
Compiles a template with the current template engine and returns a compiled Compiles a template with the current template engine and returns a compiled
Expand All @@ -117,8 +128,10 @@ Template.prototype = {
@since 3.8.0 @since 3.8.0
**/ **/
compile: function (text, options) { compile: function (text, options) {
_yuitest_coverfunc("build/template-base/template-base.js", "compile", 78); _yuitest_coverfunc("build/template-base/template-base.js", "compile", 88);
_yuitest_coverline("build/template-base/template-base.js", 79); _yuitest_coverline("build/template-base/template-base.js", 89);
options = options ? Y.merge(this.defaults, options) : this.defaults;
_yuitest_coverline("build/template-base/template-base.js", 90);
return this.engine.compile(text, options); return this.engine.compile(text, options);
}, },


Expand All @@ -134,8 +147,10 @@ return this.engine.compile(text, options);
@since 3.8.0 @since 3.8.0
**/ **/
precompile: function (text, options) { precompile: function (text, options) {
_yuitest_coverfunc("build/template-base/template-base.js", "precompile", 93); _yuitest_coverfunc("build/template-base/template-base.js", "precompile", 104);
_yuitest_coverline("build/template-base/template-base.js", 94); _yuitest_coverline("build/template-base/template-base.js", 105);
options = options ? Y.merge(this.defaults, options) : this.defaults;
_yuitest_coverline("build/template-base/template-base.js", 106);
return this.engine.precompile(text, options); return this.engine.precompile(text, options);
}, },


Expand All @@ -152,14 +167,17 @@ return this.engine.precompile(text, options);
@since 3.8.0 @since 3.8.0
**/ **/
render: function (text, data, options) { render: function (text, data, options) {
_yuitest_coverfunc("build/template-base/template-base.js", "render", 109); _yuitest_coverfunc("build/template-base/template-base.js", "render", 121);
_yuitest_coverline("build/template-base/template-base.js", 110); _yuitest_coverline("build/template-base/template-base.js", 122);
options = options ? Y.merge(this.defaults, options) : this.defaults;

_yuitest_coverline("build/template-base/template-base.js", 124);
if (this.engine.render) { if (this.engine.render) {
_yuitest_coverline("build/template-base/template-base.js", 111); _yuitest_coverline("build/template-base/template-base.js", 125);
return this.engine.render(text, data, options); return this.engine.render(text, data, options);
} }


_yuitest_coverline("build/template-base/template-base.js", 114); _yuitest_coverline("build/template-base/template-base.js", 128);
return this.engine.compile(text, options)(data, options); return this.engine.compile(text, options)(data, options);
}, },


Expand All @@ -176,8 +194,11 @@ return this.engine.compile(text, options)(data, options);
@since 3.8.0 @since 3.8.0
**/ **/
revive: function (precompiled, options) { revive: function (precompiled, options) {
_yuitest_coverfunc("build/template-base/template-base.js", "revive", 129); _yuitest_coverfunc("build/template-base/template-base.js", "revive", 143);
_yuitest_coverline("build/template-base/template-base.js", 130); _yuitest_coverline("build/template-base/template-base.js", 144);
options = options ? Y.merge(this.defaults, options) : this.defaults;

_yuitest_coverline("build/template-base/template-base.js", 146);
return this.engine.revive ? this.engine.revive(precompiled, options) : return this.engine.revive ? this.engine.revive(precompiled, options) :
precompiled; precompiled;
} }
Expand All @@ -187,7 +208,7 @@ return this.engine.revive ? this.engine.revive(precompiled, options) :
// if Y.Template already exists, then make the function the new Y.Template. // if Y.Template already exists, then make the function the new Y.Template.
// This ensures that other modules can safely add stuff to the Y.Template // This ensures that other modules can safely add stuff to the Y.Template
// namespace even if they're loaded before this one. // namespace even if they're loaded before this one.
_yuitest_coverline("build/template-base/template-base.js", 139); _yuitest_coverline("build/template-base/template-base.js", 155);
Y.Template = Y.Template ? Y.mix(Template, Y.Template) : Template; Y.Template = Y.Template ? Y.mix(Template, Y.Template) : Template;




Expand Down
18 changes: 17 additions & 1 deletion build/template-base/template-base-debug.js
Expand Up @@ -45,11 +45,21 @@ Using with Handlebars:
@param {Mixed} [engine=Y.Template.Micro] Template engine to use, such as @param {Mixed} [engine=Y.Template.Micro] Template engine to use, such as
`Y.Template.Micro` or `Y.Handlebars`. Defaults to `Y.Template.Micro` if not `Y.Template.Micro` or `Y.Handlebars`. Defaults to `Y.Template.Micro` if not
specified. specified.
@param {Object} [defaults] Default options to use when instance methods are
invoked.
@constructor @constructor
@since 3.8.0 @since 3.8.0
**/ **/


function Template(engine) { function Template(engine, defaults) {
/**
Default options.
@property {Object} defaults
@since 3.8.1
**/
this.defaults = defaults;

/** /**
Template engine class. Template engine class.
Expand All @@ -76,6 +86,7 @@ Template.prototype = {
@since 3.8.0 @since 3.8.0
**/ **/
compile: function (text, options) { compile: function (text, options) {
options = options ? Y.merge(this.defaults, options) : this.defaults;
return this.engine.compile(text, options); return this.engine.compile(text, options);
}, },


Expand All @@ -91,6 +102,7 @@ Template.prototype = {
@since 3.8.0 @since 3.8.0
**/ **/
precompile: function (text, options) { precompile: function (text, options) {
options = options ? Y.merge(this.defaults, options) : this.defaults;
return this.engine.precompile(text, options); return this.engine.precompile(text, options);
}, },


Expand All @@ -107,6 +119,8 @@ Template.prototype = {
@since 3.8.0 @since 3.8.0
**/ **/
render: function (text, data, options) { render: function (text, data, options) {
options = options ? Y.merge(this.defaults, options) : this.defaults;

if (this.engine.render) { if (this.engine.render) {
return this.engine.render(text, data, options); return this.engine.render(text, data, options);
} }
Expand All @@ -127,6 +141,8 @@ Template.prototype = {
@since 3.8.0 @since 3.8.0
**/ **/
revive: function (precompiled, options) { revive: function (precompiled, options) {
options = options ? Y.merge(this.defaults, options) : this.defaults;

return this.engine.revive ? this.engine.revive(precompiled, options) : return this.engine.revive ? this.engine.revive(precompiled, options) :
precompiled; precompiled;
} }
Expand Down
2 changes: 1 addition & 1 deletion build/template-base/template-base-min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 0ecec88

Please sign in to comment.