core: optimize renderer computing

This just use if/elif/else to do the proper renderer finding once and
for all.

Change-Id: I5e754afad2a7ce64e692d6898a9cf9eed5a7e94c
This commit is contained in:
Julien Danjou 2014-12-19 14:45:42 +01:00
parent fcfbd06ccc
commit a82e395118
1 changed files with 8 additions and 7 deletions

View File

@ -390,18 +390,19 @@ class PecanBase(object):
return args, varargs, kwargs
def render(self, template, namespace):
renderer = self.renderers.get(
self.default_renderer,
self.template_path
)
if template == 'json':
renderer = self.renderers.get('json', self.template_path)
if ':' in template:
elif ':' in template:
renderer_name, template = template.split(':', 1)
renderer = self.renderers.get(
template.split(':')[0],
renderer_name,
self.template_path
)
else:
renderer = self.renderers.get(
self.default_renderer,
self.template_path
)
template = template.split(':')[1]
return renderer.render(template, namespace)
def find_controller(self, state):