Commit 55460607 by Eric Florenzano

Avoid code duplication by restructuring loops slightly

parent 12675706
...@@ -23,8 +23,11 @@ class Template(object): ...@@ -23,8 +23,11 @@ class Template(object):
def render_sections(self, template, context): def render_sections(self, template, context):
"""Expands sections.""" """Expands sections."""
match = SECTION_RE.search(template) while 1:
while match: match = SECTION_RE.search(template)
if match is None:
break
section, section_name, inner = match.group(0, 1, 2) section, section_name, inner = match.group(0, 1, 2)
if section_name in context and context[section_name]: if section_name in context and context[section_name]:
if hasattr(context[section_name], '__iter__'): if hasattr(context[section_name], '__iter__'):
...@@ -38,14 +41,16 @@ class Template(object): ...@@ -38,14 +41,16 @@ class Template(object):
template = template.replace(section, inner) template = template.replace(section, inner)
else: else:
template = template.replace(section, '') template = template.replace(section, '')
match = SECTION_RE.search(template)
return template return template
def render_tags(self, template, context): def render_tags(self, template, context):
"""Renders all the tags in a template for a context.""" """Renders all the tags in a template for a context."""
match = TAG_RE.search(template) while 1:
while match: match = TAG_RE.search(template)
if match is None:
break
tag, tag_type, tag_name = match.group(0, 1, 2) tag, tag_type, tag_name = match.group(0, 1, 2)
func = 'render_' + self.tag_types[tag_type] func = 'render_' + self.tag_types[tag_type]
...@@ -53,8 +58,6 @@ class Template(object): ...@@ -53,8 +58,6 @@ class Template(object):
replacement = getattr(self, func)(tag_name, context) replacement = getattr(self, func)(tag_name, context)
template = template.replace(tag, replacement) template = template.replace(tag, replacement)
match = TAG_RE.search(template)
return template return template
def render_tag(self, tag_name, context): def render_tag(self, tag_name, context):
......
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