Sha256: 9c8461db833b90a7b1bf82f4d6a37f192ef2f0b49c02d27d80bd709c260088d8

Contents?: true

Size: 1.26 KB

Versions: 9

Compression:

Stored size: 1.26 KB

Contents

// Simple JavaScript Templating
// John Resig - http://ejohn.org/ - MIT Licensed
(function (){
  var cache = {};

  this.tmpl = function tmpl(str, data){
    // Figure out if we're getting a template, or if we need to
    // load the template - and be sure to cache the result.
    var fn = !/\W/.test(str) ?
        cache[str] = cache[str] ||
            tmpl(document.getElementById(str).innerHTML) :

      // Generate a reusable function that will serve as a template
      // generator (and which will be cached).
        new Function("obj",
            "var p=[],print=function(){p.push.apply(p,arguments);};" +

              // Introduce the data as local variables using with(){}
                "with(obj){p.push('" +

              // Convert the template into pure JavaScript
                str
                    .replace(/[\r\t\n]/g, " ")
                    .split("<%").join("\t")
                    .replace(/((^|%>)[^\t]*)'/g, "$1\r")
                    .replace(/\t=(.*?)%>/g, "',$1,'")
                    .split("\t").join("');")
                    .split("%>").join("p.push('")
                    .split("\r").join("\\'")
                + "');}return p.join('');");

    // Provide some basic currying to the user
    return data ? fn(data) : fn;
  };
})();

Version data entries

9 entries across 8 versions & 2 rubygems

Version Path
fileapi-0.0.3 app/assets/javascripts/fileapi/tmpl.js
fileapi-0.0.2 app/assets/javascripts/fileapi/tmpl.js
redditor-0.1.5 app/assets/javascripts/fileapi/tmpl.js
redditor-0.1.4 app/assets/javascripts/fileapi/tmpl.js
redditor-0.1.3 app/assets/javascripts/fileapi/tmpl.js
redditor-0.1.2 app/assets/javascripts/fileapi/tmpl.js
redditor-0.1.1 app/assets/javascripts/fileapi/tmpl.js
redditor-0.1.0 app/assets/javascripts/redditor/fileapi/tmpl.js
redditor-0.1.0 app/assets/javascripts/fileapi/tmpl.js