Commit 285f8485 by Chris Jerdonek

Addressed TODO to move regex compilation out of the constructor.

parent aea32c6e
...@@ -149,19 +149,17 @@ class RenderEngine(object): ...@@ -149,19 +149,17 @@ class RenderEngine(object):
if delimiters is None: if delimiters is None:
delimiters = DEFAULT_DELIMITERS delimiters = DEFAULT_DELIMITERS
self._delimiters = delimiters
self.escape = escape self.escape = escape
self.literal = literal self.literal = literal
self.load_partial = load_partial self.load_partial = load_partial
# TODO: consider an approach that doesn't require compiling a regular def _compile_template_re(self):
# expression in the constructor. For example, be lazier. That way self._template_re = _compile_template_re(self._delimiters)
# rendering will still work as expected even if the delimiters are
# set after the constructor
self._set_delimiters(delimiters)
def _set_delimiters(self, delimiters): def _change_delimiters(self, delimiters):
self._delimiters = delimiters self._delimiters = delimiters
self._template_re = _compile_template_re(self._delimiters) self._compile_template_re()
def render(self, template, context): def render(self, template, context):
""" """
...@@ -202,6 +200,7 @@ class RenderEngine(object): ...@@ -202,6 +200,7 @@ class RenderEngine(object):
engine = RenderEngine(load_partial=self.load_partial, engine = RenderEngine(load_partial=self.load_partial,
literal=self.literal, escape=self.escape, delimiters=delims) literal=self.literal, escape=self.escape, delimiters=delims)
engine._compile_template_re()
return engine.parse_to_tree(template=template_string) return engine.parse_to_tree(template=template_string)
...@@ -371,7 +370,7 @@ class RenderEngine(object): ...@@ -371,7 +370,7 @@ class RenderEngine(object):
if captures['tag'] == '=': if captures['tag'] == '=':
delimiters = name.split() delimiters = name.split()
self._set_delimiters(delimiters) self._change_delimiters(delimiters)
return end_index return end_index
if captures['tag'] == '>': if captures['tag'] == '>':
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment