Sha256: cc6626743c57473c995a3a3dc0bf1d3febe1bedc0019887410c35fdf8c9942a0
Contents?: true
Size: 1.1 KB
Versions: 9
Compression:
Stored size: 1.1 KB
Contents
Johnson.templatize = function (template, begin, end) { var begin = begin || "<%" var end = end || "%>" var rebegin = begin.replace(/([\]{}[\\])/g, '\\$1'); var reend = end.replace(/([\]{}[\\])/g, '\\$1'); var code = "_context = _context || {}; with (_context) {" + "var _result = '';" + template .replace(/[\t\r\n]/g, ' ') .replace(/^(.*)$/, end + '$1' + begin) .replace(new RegExp(reend + "(.*?)" + rebegin, "g"), function (text) { return text .replace(new RegExp("^" + reend + "(.*)" + rebegin + "$"), "$1") .replace(/\\/g, "\\\\") .replace(/'/g, "\\'") .replace(/^(.*)$/, function(sub, m) { return end + (m == "" ? "" : "_result += '" + m + "';") + begin; }); }) .replace(new RegExp(rebegin + "=(.*?)" + reend, "g"), "_result += ($1);") .replace(new RegExp(rebegin + "(.*?)" + reend, "g"), ' $1 ') .replace(new RegExp("^" + reend + "(.*)" + rebegin + "$"), '$1') + "return _result;" + "}"; return new Function("_context", code); };
Version data entries
9 entries across 9 versions & 1 rubygems