diff --git a/lib/handlebars.js b/lib/handlebars.js index a96df4cf..3d85b22b 100644 --- a/lib/handlebars.js +++ b/lib/handlebars.js @@ -29,11 +29,11 @@ Handlebars.compile = function(string) { var helpers, partials; if(!helpers) { - helpers = this.helpers; + helpers = Handlebars.helpers; } if(!partials) { - partials = this.partials; + partials = Handlebars.partials; } var runtime = new Handlebars.Runtime(context, helpers, partials); @@ -45,13 +45,34 @@ Handlebars.compile = function(string) { Handlebars.helpers = {}; Handlebars.partials = {}; -Handlebars.registerHelper = function(name, fn) { +Handlebars.registerHelper = function(name, fn, inverse) { + if(inverse) { fn.not = inverse; } this.helpers[name] = fn; }; Handlebars.registerPartial = function(name, str) { this.partials[name] = str; }; + +Handlebars.registerHelper('helperMissing', function(context, fn) { + var ret = ""; + + if(context === true) { + return fn(this); + } else if(context === false) { + return ""; + } else if(Object.prototype.toString.call(context) === "[object Array]") { + for(var i=0, j=context.length; i