Skip to content
This repository has been archived by the owner on Feb 12, 2018. It is now read-only.

Commit

Permalink
Updated templates to be more legible
Browse files Browse the repository at this point in the history
  • Loading branch information
twolfson committed Jan 9, 2013
1 parent 5d8a44b commit 8cfccc4
Show file tree
Hide file tree
Showing 13 changed files with 205 additions and 35 deletions.
17 changes: 16 additions & 1 deletion dist/Builder.js
Expand Up @@ -3,6 +3,17 @@
* Copyright (c) 2013 Ensighten; Licensed MIT */

(function () {

// jQuery flavored settings for Builder
var settings = {
'template engine': function (tmpl) {
return tmpl;
},
'dom engine': function (content) {
return $(content);
}
};

// Create storage for before and after functions
var beforeFns = [],
afterFns = [];
Expand Down Expand Up @@ -147,5 +158,9 @@ function after(fn) {
Builder.after = after;

// TODO: Inside of README, leave notes about this.data



return Builder;
}());

}());
2 changes: 1 addition & 1 deletion dist/Builder.min.js

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

3 changes: 2 additions & 1 deletion dist/Builder.require.jquery.keys.js
Expand Up @@ -2,7 +2,7 @@
* https://github.com/Ensighten/Builder
* Copyright (c) 2013 Ensighten; Licensed MIT */

define(function () {
define(['jquery'], function ($) {

// jQuery flavored settings for Builder
var settings = {
Expand Down Expand Up @@ -228,4 +228,5 @@ before(function (name) {
});

return Builder;

});
2 changes: 1 addition & 1 deletion dist/Builder.require.jquery.keys.min.js

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

3 changes: 2 additions & 1 deletion dist/Builder.require.js
Expand Up @@ -3,6 +3,7 @@
* Copyright (c) 2013 Ensighten; Licensed MIT */

define(function () {

// jQuery flavored settings for Builder
var settings = {
'template engine': function (tmpl) {
Expand All @@ -13,7 +14,6 @@ var settings = {
}
};


// Create storage for before and after functions
var beforeFns = [],
afterFns = [];
Expand Down Expand Up @@ -162,4 +162,5 @@ Builder.after = after;


return Builder;

});
4 changes: 1 addition & 3 deletions src/templates/pre_templates/content.mustache
@@ -1,8 +1,6 @@
{{^useJQuery}}
{{{defaultSettings}}}
{{/useJQuery}}

{{#useJQuery}}
{{/useJQuery}}{{#useJQuery}}
{{{jQuerySettings}}}
{{/useJQuery}}

Expand Down
4 changes: 3 additions & 1 deletion src/templates/pre_templates/require.mustache.us
@@ -1,7 +1,9 @@
{{^useJQuery}}
define(function () {
{{#useJQuery}}
{{/useJQuery}}{{#useJQuery}}
define(['jquery'], function ($) {
{{/useJQuery}}

<%= content %>

});
12 changes: 5 additions & 7 deletions src/templates/pre_templates/vanilla.mustache.us
@@ -1,15 +1,13 @@
{{^useJQuery}}
define(function () {
{{/useJQuery}}
{{#useJQuery}}
(function () {
{{/useJQuery}}{{#useJQuery}}
(function ($) {
{{/useJQuery}}

<%= content %>

{{^useJQuery}}
)());
{{/useJQuery}}
{{#useJQuery}}
)(jQuery));
}());
{{/useJQuery}}{{#useJQuery}}
}(jQuery));
{{/useJQuery}}
8 changes: 4 additions & 4 deletions src/templates/require.mustache
@@ -1,13 +1,12 @@
{{^useJQuery}}
define(function () {
{{#useJQuery}}
{{/useJQuery}}{{#useJQuery}}
define(['jquery'], function ($) {
{{/useJQuery}}

{{^useJQuery}}
{{{defaultSettings}}}
{{/useJQuery}}

{{#useJQuery}}
{{/useJQuery}}{{#useJQuery}}
{{{jQuerySettings}}}
{{/useJQuery}}

Expand All @@ -22,4 +21,5 @@ define(['jquery'], function ($) {
{{/useKeys}}

return Builder;

});
16 changes: 6 additions & 10 deletions src/templates/vanilla.mustache
@@ -1,15 +1,12 @@
{{^useJQuery}}
define(function () {
{{/useJQuery}}
{{#useJQuery}}
(function () {
{{/useJQuery}}{{#useJQuery}}
(function ($) {
{{/useJQuery}}

{{^useJQuery}}
{{{defaultSettings}}}
{{/useJQuery}}

{{#useJQuery}}
{{/useJQuery}}{{#useJQuery}}
{{{jQuerySettings}}}
{{/useJQuery}}

Expand All @@ -26,8 +23,7 @@ define(function () {
return Builder;

{{^useJQuery}}
)());
{{/useJQuery}}
{{#useJQuery}}
)(jQuery));
}());
{{/useJQuery}}{{#useJQuery}}
}(jQuery));
{{/useJQuery}}
163 changes: 160 additions & 3 deletions stage/Builder.js
@@ -1,5 +1,162 @@
define(function () {
(function () {

{%- content %}
// jQuery flavored settings for Builder
var settings = {
'template engine': function (tmpl) {
return tmpl;
},
'dom engine': function (content) {
return $(content);
}
};

)());
// Create storage for before and after functions
var beforeFns = [],
afterFns = [];

/**
* Build chain for client side views. before -> template -> domify -> after -> return
* @param {String} tmpl Template to process through template engine
* @param {Object} [data] Data to pass through to template engine
* @returns {Mixed} Output from before -> template -> domify -> after -> return
*/
function Builder(tmpl, data) {
// Generate a this context for data
var that = {'data': data};

// Run the beforeFns on tmpl
tmpl = pre.call(that, tmpl);

// Convert the template into content
var content = template.call(that, tmpl, data);

// Pass the template through the dom engine
var $content = domify.call(that, content);

// Run the afterFns on $content
$content = post.call(that, $content);

// Return the $content
return $content;
}

/**
* Modify tmpl via beforeFns
* @param {String} tmpl Template string to modify
* @returns {String} Modified tmpl
*/
function pre(tmpl) {
// Iterate over the beforeFns
var i = 0,
len = beforeFns.length;
for (; i < len; i++) {
tmpl = beforeFns[i].call(this, tmpl) || tmpl;
}

// Return tmpl
return tmpl;
}
Builder.pre = pre;
Builder.beforeFns = beforeFns;

/**
* Parse template through its engine
* @param {String} tmpl Template to process through template engine
* @param {Object} [data] Data to pass through to template engine
*/
function template(tmpl, data) {
// Grab the template engine
var engine = settings['template engine'];

// Process the template through the template engine
var content = engine.call(this, tmpl, data);

// Return the content
return content;
}
Builder.template = template;

/**
* Convert HTML into HTMLElements, jQuery elements, or other
* @param {String} content HTML to pass through dom engine
*/
function domify(content) {
// Grab the dom engine
var engine = settings['dom engine'];

// Process the content through the dom engine
var $content = engine.call(this, content);

// Return the $content
return $content;
}
Builder.domify = domify;

/**
* Modify $content via afterFns
* @param {String} $content Content to modify
* @returns {String} Modified $content
*/
function post($content) {
// Iterate over the afterFns
var i = 0,
len = afterFns.length;
for (; i < len; i++) {
$content = afterFns[i].call(this, $content) || $content;
}

// Return tmpl
return $content;
}
Builder.post = post;
Builder.afterFns = afterFns;

/**
* Settings helper for Builder
* @param {String|Object} name If object, interpret as key-value pairs of settings. If string, save val under settings key.
* @param {Mixed} [val] Value to save under name
*/
function set(name, val) {
// If the name is an object
var key;
if (typeof name === 'object') {
// Iterate over its properties
for (key in name) {
if (name.hasOwnProperty(key)) {
// Set each one
set(key, name[key]);
}
}
} else {
// Otherwise, save to settings
settings[name] = val;
}
}
Builder.set = set;
Builder.settings = settings;

/**
* Helper method for saving new before methods
* @param {Function} fn Before method to add
*/
function before(fn) {
beforeFns.push(fn);
}
Builder.before = before;

/**
* Helper method for saving new after methods
* @param {Function} fn After method to add
*/
function after(fn) {
afterFns.push(fn);
}
Builder.after = after;

// TODO: Inside of README, leave notes about this.data



return Builder;

}());
3 changes: 2 additions & 1 deletion stage/Builder.require.jquery.keys.js
@@ -1,4 +1,4 @@
define(function () {
define(['jquery'], function ($) {

// jQuery flavored settings for Builder
var settings = {
Expand Down Expand Up @@ -224,4 +224,5 @@ before(function (name) {
});

return Builder;

});
3 changes: 2 additions & 1 deletion stage/Builder.require.js
@@ -1,4 +1,5 @@
define(function () {

// jQuery flavored settings for Builder
var settings = {
'template engine': function (tmpl) {
Expand All @@ -9,7 +10,6 @@ var settings = {
}
};


// Create storage for before and after functions
var beforeFns = [],
afterFns = [];
Expand Down Expand Up @@ -158,4 +158,5 @@ Builder.after = after;


return Builder;

});

0 comments on commit 8cfccc4

Please sign in to comment.