edspencer/jaml — pull request #19 by fmarsoni (2012-02-08 13:02:25+00:00)
Title: Some changes to allow scoped overrides and direct use of template functions

This allow to write:

Jaml.render(function(data) { div(....) }, data);
to easily use a template without registering it

Jaml.register('tmpl', function(data) {....});
Jaml.render({tmpl: function(data) { div(....) }}, 'tmpl', data);
to ovveride a template without overwriting already registered template

A slightly more complex example:
Jaml.register('tmpl', function(data) { p(....)});
Jaml.register('tmpl2', function(data) { div(render('tmpl', data))});
Jaml.render({
tmpl: function(data) { div(....) }
}, 'tmpl2', data); ->

....

Jaml.render('tmpl2', data); ->

....

To allow "render" function in place of Jaml.render I had to rename "render" method in Jaml.Template to "_render".
I changed tests according to it and added two more.

This is just an idea, even if I'm using theese changes in a large project where I need to improve reusability of templates and avoid accidental overwrites.