summaryrefslogtreecommitdiff
path: root/repoze/bfg/template.py
diff options
context:
space:
mode:
authorPaul Everitt <paul@agendaless.com>2008-07-18 14:23:58 +0000
committerPaul Everitt <paul@agendaless.com>2008-07-18 14:23:58 +0000
commitca9f9e3d16e8c84ab3958bf51ea78da09a089ea8 (patch)
tree9b579773821f76be8c261316acf572d686bf2b33 /repoze/bfg/template.py
parent6b9fd1b81af54cd00d8b4dfe9ecd900941fdc17b (diff)
downloadpyramid-ca9f9e3d16e8c84ab3958bf51ea78da09a089ea8.tar.gz
pyramid-ca9f9e3d16e8c84ab3958bf51ea78da09a089ea8.tar.bz2
pyramid-ca9f9e3d16e8c84ab3958bf51ea78da09a089ea8.zip
Using Chris's help, changed signature of interface to support what the XSLT processors expects. Fixed tests to assert that interface.
Diffstat (limited to 'repoze/bfg/template.py')
-rw-r--r--repoze/bfg/template.py13
1 files changed, 6 insertions, 7 deletions
diff --git a/repoze/bfg/template.py b/repoze/bfg/template.py
index 78529eb40..8ade2fb74 100644
--- a/repoze/bfg/template.py
+++ b/repoze/bfg/template.py
@@ -11,6 +11,7 @@ from zope.interface import implements
from webob import Response
from repoze.bfg.interfaces import IView
+from repoze.bfg.interfaces import INodeView
from repoze.bfg.interfaces import ITemplateFactory
class Z3CPTTemplateFactory(object):
@@ -28,15 +29,14 @@ class Z3CPTTemplateFactory(object):
class XSLTemplateFactory(object):
classProvides(ITemplateFactory)
- implements(IView)
+ implements(INodeView)
def __init__(self, path):
self.path = path
- def __call__(self, *arg, **kw):
- node = kw.get("node")
+ def __call__(self, node, **kw):
processor = get_processor(self.path)
- result = str(processor(node))
+ result = str(processor(node, **kw))
response = Response(result)
return response
@@ -92,7 +92,7 @@ def render_template(path, **kw):
return template(**kw)
-def render_transform(path, **kw):
+def render_transform(path, node, **kw):
""" Render a XSL template at the package-relative path (may also
be absolute) using the kwargs in ``*kw`` as top-level names and
return a Response object."""
@@ -106,11 +106,10 @@ def render_transform(path, **kw):
path = os.path.join(prefix, path)
template = queryUtility(IView, path)
- node = kw.get("node")
if template is None:
if not os.path.exists(path):
raise ValueError('Missing template file: %s' % path)
template = XSLTemplateFactory(path)
registerTemplate(template, path)
- return template(**kw)
+ return template(node, **kw)