diff options
-rw-r--r-- | pystache/parser.py | 6 | ||||
-rw-r--r-- | pystache/renderengine.py | 18 |
2 files changed, 10 insertions, 14 deletions
diff --git a/pystache/parser.py b/pystache/parser.py index 9e366cb..1c6a5ee 100644 --- a/pystache/parser.py +++ b/pystache/parser.py @@ -72,12 +72,12 @@ class Parser(object): self._delimiters = delimiters self.engine = engine - def compile_template_re(self): + def _compile_delimiters(self): self._template_re = _compile_template_re(self._delimiters) def _change_delimiters(self, delimiters): self._delimiters = delimiters - self.compile_template_re() + self._compile_delimiters() def parse(self, template): """ @@ -96,6 +96,8 @@ class Parser(object): a ParsedTemplate instance. """ + self._compile_delimiters() + start_index = 0 content_end_index, parsed_section, section_key = None, None, None parsed_template = ParsedTemplate() diff --git a/pystache/renderengine.py b/pystache/renderengine.py index 836e610..842be06 100644 --- a/pystache/renderengine.py +++ b/pystache/renderengine.py @@ -235,19 +235,15 @@ class RenderEngine(object): return get_section_value - def _parse(self, template, delimiters=None): + def _render_unicode(self, template, context, delimiters=None): """ - Parse the given template, and return a ParsedTemplate instance. - - Arguments: - - template: a template string of type unicode. + Render a unicode template string. """ parser = Parser(self, delimiters=delimiters) - parser.compile_template_re() + parsed_template = parser.parse(template) - return parser.parse(template=template) + return parsed_template.render(context) def _render_value(self, val, context, delimiters=None): """ @@ -278,9 +274,7 @@ class RenderEngine(object): if type(template) is not unicode: raise Exception("Argument 'template' not unicode: %s: %s" % (type(template), repr(template))) - parsed_template = self._parse(template, delimiters) - - return parsed_template.render(context) + return self._render_unicode(template, context, delimiters) def render(self, template, context): """ @@ -299,4 +293,4 @@ class RenderEngine(object): # don't use self.literal). template = unicode(template) - return self._render(template, context) + return self._render_unicode(template, context) |