[Checkins] SVN: megrok.genshi/trunk/src/megrok/genshi/components.py
Updated to new simplifed story. A whole 8 lines shorter.
(Well, that's actually 11%, so it's
Lennart Regebro
regebro at gmail.com
Mon Nov 5 12:53:30 EST 2007
Log message for revision 81547:
Updated to new simplifed story. A whole 8 lines shorter. (Well, that's actually 11%, so it's
not so bad, really).
Changed:
U megrok.genshi/trunk/src/megrok/genshi/components.py
-=-
Modified: megrok.genshi/trunk/src/megrok/genshi/components.py
===================================================================
--- megrok.genshi/trunk/src/megrok/genshi/components.py 2007-11-05 17:38:21 UTC (rev 81546)
+++ megrok.genshi/trunk/src/megrok/genshi/components.py 2007-11-05 17:53:29 UTC (rev 81547)
@@ -19,49 +19,41 @@
import grok
import martian
-class GenshiTemplateBase(grok.components.GrokPageTemplate):
+class GenshiTemplateBase(grok.components.GrokTemplate):
def render(self, view):
- namespace = self.namespace(view)
- namespace.update(view.namespace())
- stream = self._template.generate(**namespace)
+ stream = self._template.generate(**self.getNamespace(view))
return stream.render(self.result_type)
+ def fromTemplate(self, template):
+ return self.cls(template)
+
+ def fromFile(self, filename, _prefix=None):
+ loader = genshi.template.TemplateLoader(_prefix)
+ return loader.load(filename, cls=self.cls)
class GenshiMarkupTemplate(GenshiTemplateBase):
result_type = 'xhtml'
+ cls = genshi.template.MarkupTemplate
- def __init__(self, html):
- self._template = genshi.template.MarkupTemplate(html)
- self.__grok_module__ = martian.util.caller_module()
+class GenshiTextTemplate(GenshiTemplateBase):
+ result_type = 'text'
+ cls = genshi.template.TextTemplate
-class GenshiMarkupTemplateFile(GenshiTemplateBase, grok.components.GlobalUtility):
+class GenshiMarkupTemplateFactory(grok.components.GlobalUtility):
- zope.interface.implements(grok.interfaces.ITemplateFile)
- zope.interface.classProvides(grok.interfaces.ITemplateFileFactory)
+ zope.interface.implements(grok.interfaces.ITemplateFileFactory)
grok.name('g')
- grok.direct()
+
+ def __call__(self, filename, _prefix=None):
+ return GenshiMarkupTemplate(filename=filename, _prefix=_prefix)
- result_type = 'xhtml'
+class GenshiTextTemplateFactory(grok.components.GlobalUtility):
- def __init__(self, filename, _prefix=None):
- loader = genshi.template.TemplateLoader(_prefix)
- self._template = loader.load(filename)
- self.__grok_module__ = martian.util.caller_module()
-
-
-class GenshiTextTemplateFile(GenshiTemplateBase, grok.components.GlobalUtility):
-
- result_type = 'xhtml'
-
- zope.interface.implements(grok.interfaces.ITemplateFile)
- zope.interface.classProvides(grok.interfaces.ITemplateFileFactory)
+ zope.interface.implements(grok.interfaces.ITemplateFileFactory)
grok.name('gt')
- grok.direct()
-
- def __init__(self, filename, _prefix=None):
- loader = genshi.template.TemplateLoader(_prefix)
- self._template = loader.load(filename, cls=genshi.template.TextTemplate)
- self.__grok_module__ = martian.util.caller_module()
+
+ def __call__(self, filename, _prefix=None):
+ return GenshiTextTemplate(filename=filename, _prefix=_prefix)
More information about the Checkins
mailing list