[Checkins] SVN: z3c.resourceinclude/trunk/ Fixed handling of multiple include on same layer.

Malthe Borch mborch at gmail.com
Wed Mar 5 18:48:50 EST 2008


Log message for revision 84487:
  Fixed handling of multiple include on same layer.

Changed:
  U   z3c.resourceinclude/trunk/setup.py
  U   z3c.resourceinclude/trunk/z3c/resourceinclude/zcml.py

-=-
Modified: z3c.resourceinclude/trunk/setup.py
===================================================================
--- z3c.resourceinclude/trunk/setup.py	2008-03-05 23:37:11 UTC (rev 84486)
+++ z3c.resourceinclude/trunk/setup.py	2008-03-05 23:48:50 UTC (rev 84487)
@@ -1,7 +1,7 @@
 from setuptools import setup, find_packages
 import sys, os
 
-version = '0.2.1'
+version = '0.2.2'
 
 setup(name='z3c.resourceinclude',
       version=version,

Modified: z3c.resourceinclude/trunk/z3c/resourceinclude/zcml.py
===================================================================
--- z3c.resourceinclude/trunk/z3c/resourceinclude/zcml.py	2008-03-05 23:37:11 UTC (rev 84486)
+++ z3c.resourceinclude/trunk/z3c/resourceinclude/zcml.py	2008-03-05 23:48:50 UTC (rev 84487)
@@ -10,7 +10,7 @@
 from manager import ResourceManager
 from interfaces import IResourceManager
 
-counter = 0
+managers = {}
 
 class IResourceIncludeDirective(interface.Interface):
     include = Tokens(
@@ -40,7 +40,7 @@
         include = [base+'/'+name for name in include]
         
     _context.action(
-        discriminator = ('resourceInclude', IBrowserRequest, layer),
+        discriminator = ('resourceInclude', IBrowserRequest, layer, "".join(include)),
         callable = handler,
         args = (include, layer, manager, _context.info),
         )
@@ -48,15 +48,17 @@
 def handler(include, layer, manager, info):
     """Set up includes."""
 
-    global counter
-    
+    global managers
+
     if manager is None:
-        manager = component.queryAdapter(layer, IResourceManager)
+        manager = managers.get(layer)
 
         if manager is None:
-            manager = ResourceManager()
-            name = str(counter).rjust(3, '0') + ':' + layer.__module__ + '.' + layer.__name__
-            counter += 1
+            managers[layer] = manager = ResourceManager()
+
+            count = len(managers)
+            name = str(count).rjust(3, '0') + ':' + layer.__module__ + '.' + layer.__name__
+
             component.provideAdapter(
                 manager, (layer,), IResourceManager, name=name)
 



More information about the Checkins mailing list