UNPKG

brown-ext-basic

Version:

basic template functions for brown template engine

65 lines (63 loc) 1.73 kB
// 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);