[Checkins] SVN: grok/trunk/src/grok/ implemented grok.resource

Wolfgang Schnerring wosc at wosc.de
Mon Oct 16 09:49:53 EDT 2006


Log message for revision 70691:
  implemented grok.resource

Changed:
  U   grok/trunk/src/grok/__init__.py
  U   grok/trunk/src/grok/_grok.py
  A   grok/trunk/src/grok/tests/view/resourcedirectory.py
  A   grok/trunk/src/grok/tests/view/resourcedirectoryname/food.pt

-=-
Modified: grok/trunk/src/grok/__init__.py
===================================================================
--- grok/trunk/src/grok/__init__.py	2006-10-16 13:48:02 UTC (rev 70690)
+++ grok/trunk/src/grok/__init__.py	2006-10-16 13:49:53 UTC (rev 70691)
@@ -16,4 +16,4 @@
 
 from zope.interface import implements
 from _grok import (Model, Adapter, View, PageTemplate,
-                   grok, context, name, template)
+                   grok, context, name, template, resource)

Modified: grok/trunk/src/grok/_grok.py
===================================================================
--- grok/trunk/src/grok/_grok.py	2006-10-16 13:48:02 UTC (rev 70690)
+++ grok/trunk/src/grok/_grok.py	2006-10-16 13:49:53 UTC (rev 70691)
@@ -93,7 +93,8 @@
             templates.register(name, obj)
 
     # find filesystem resources
-    directory_name = dotted_name.split('.')[-1]
+    module_name = dotted_name.split('.')[-1]
+    directory_name = getattr(module, '__grok_resource__', module_name)
     if resource_exists(dotted_name, directory_name):
         resources = resource_listdir(dotted_name, directory_name)
         for resource in resources:
@@ -210,6 +211,8 @@
 def caller_module():
     return sys._getframe(2).f_globals['__name__']
 
+# directives
 name = TextDirective('grok.name', ClassDirectiveContext())
 template = TextDirective('grok.template', ClassDirectiveContext())
 context = InterfaceOrClassDirective('grok.context', ClassOrModuleDirectiveContext())
+resource = TextDirective('grok.resource', ModuleDirectiveContext())

Added: grok/trunk/src/grok/tests/view/resourcedirectory.py
===================================================================
--- grok/trunk/src/grok/tests/view/resourcedirectory.py	2006-10-16 13:48:02 UTC (rev 70690)
+++ grok/trunk/src/grok/tests/view/resourcedirectory.py	2006-10-16 13:49:53 UTC (rev 70691)
@@ -0,0 +1,24 @@
+"""
+You can explicitly specify the resource directory using grok.resource on module level:
+
+  >>> grok.grok(__name__)
+
+  >>> manfred = Mammoth()
+  >>> from zope.publisher.browser import TestRequest
+  >>> request = TestRequest()
+  >>> from zope import component
+  >>> view = component.getMultiAdapter((manfred, request), name='food')
+  >>> print view()
+  <html>
+  <body>
+  ME GROK EAT MAMMOTH!
+  </body>
+  </html>
+
+"""
+import grok
+
+grok.resource('resourcedirectoryname')
+
+class Mammoth(grok.Model):
+    pass

Added: grok/trunk/src/grok/tests/view/resourcedirectoryname/food.pt
===================================================================
--- grok/trunk/src/grok/tests/view/resourcedirectoryname/food.pt	2006-10-16 13:48:02 UTC (rev 70690)
+++ grok/trunk/src/grok/tests/view/resourcedirectoryname/food.pt	2006-10-16 13:49:53 UTC (rev 70691)
@@ -0,0 +1,5 @@
+<html>
+<body>
+ME GROK EAT MAMMOTH!
+</body>
+</html>



More information about the Checkins mailing list