brown-ext-basic
Version:
basic template functions for brown template engine
65 lines (63 loc) • 1.73 kB
JavaScript
// Generated by CoffeeScript 1.9.3
(function() {
module.exports = function(brown) {
brown.foreach = function(obj, tpl, empty) {
var k, str, v;
str = "";
obj = this[obj];
tpl = this[tpl];
empty = this[empty];
if ((obj != null) && (obj.length != null)) {
for (k in obj) {
v = obj[k];
str += brown.render(tpl, {
'value': v,
'key': k
});
}
} else {
str = empty;
}
return str;
};
brown.chain = function() {
var args, i, j, len, str;
args = Array.prototype.slice.call(arguments);
str = this[args.shift()];
for (j = 0, len = args.length; j < len; j++) {
i = args[j];
str = brown.safe_eval(i, brown)(str);
}
return str;
};
brown["if"] = function() {
var args;
args = Array.prototype.slice.call(arguments);
if (this[args[0]]) {
return this[args[1]];
} else {
return this[args[2]] || args[2];
}
};
brown.template = function() {
var args, id, str;
args = Array.prototype.slice.call(arguments);
id = args.shift();
str = args.join(':');
str = str.replace(/\\n/g, "\n");
this[id] = str.replace(/{/g, '{{').replace(/}/g, '}}');
return '';
};
return brown.include = function() {
var args, file, str;
args = Array.prototype.slice.call(arguments);
file = args.shift();
try {
str = require('fs').readFileSync(__dirname + "/" + file).toString();
} catch (_error) {
str = "";
}
return brown.render(str, (args.length ? brown.safe_eval(args[0], this) : this));
};
};
}).call(this);