From f39251eaf7506831f068ca80d68e60a49c0ef2f5 Mon Sep 17 00:00:00 2001 From: leaf corcoran Date: Thu, 6 Feb 2014 19:58:58 -0800 Subject: [PATCH] allow renderer to be provided --- etlua.lua | 11 +++++++---- etlua.moon | 9 ++++----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/etlua.lua b/etlua.lua index f384d65..6bf604a 100644 --- a/etlua.lua +++ b/etlua.lua @@ -316,15 +316,18 @@ do setfenv(fn, combined_env) return fn(buffer, #buffer, tostring, concat, html_escape) end, - compile_to_lua = function(self, str) + compile_to_lua = function(self, str, ...) local success, err = self:parse(str) if not (success) then return nil, err end - return self:chunks_to_lua() + return self:chunks_to_lua(...) end, - chunks_to_lua = function(self) - local r = Renderer() + chunks_to_lua = function(self, renderer_cls) + if renderer_cls == nil then + renderer_cls = Renderer + end + local r = renderer_cls() r:header() local _list_0 = self.chunks for _index_0 = 1, #_list_0 do diff --git a/etlua.moon b/etlua.moon index cd9ad70..757d6dd 100644 --- a/etlua.moon +++ b/etlua.moon @@ -69,7 +69,6 @@ class Renderer @push "_b[_b_i] = ", ... @push "\n" if ... - class Parser open_tag: "<%" close_tag: "%>" @@ -230,14 +229,14 @@ class Parser setfenv fn, combined_env fn buffer, #buffer, tostring, concat, html_escape - compile_to_lua: (str) => + compile_to_lua: (str, ...) => success, err = @parse str return nil, err unless success - @chunks_to_lua! + @chunks_to_lua ... -- generates the code of the template - chunks_to_lua: => - r = Renderer! + chunks_to_lua: (renderer_cls=Renderer) => + r = renderer_cls! r\header! for chunk in *@chunks