[Checkins] SVN: z3c.resourcecollector/trunk/ - make it possible to add collector items before the collector is defined

Juergen Kartnaller juergen at kartnaller.at
Mon May 26 05:42:41 EDT 2008


Log message for revision 86961:
   - make it possible to add collector items before the collector is defined
  

Changed:
  _U  z3c.resourcecollector/trunk/
  U   z3c.resourcecollector/trunk/CHANGES.txt
  U   z3c.resourcecollector/trunk/setup.py
  U   z3c.resourcecollector/trunk/src/z3c/resourcecollector/zcml.py
  U   z3c.resourcecollector/trunk/src/z3c/resourcecollector/zcml.txt

-=-

Property changes on: z3c.resourcecollector/trunk
___________________________________________________________________
Name: svn:ignore
   + develop-eggs
bin
parts
.installed.cfg


Modified: z3c.resourcecollector/trunk/CHANGES.txt
===================================================================
--- z3c.resourcecollector/trunk/CHANGES.txt	2008-05-26 09:36:51 UTC (rev 86960)
+++ z3c.resourcecollector/trunk/CHANGES.txt	2008-05-26 09:42:40 UTC (rev 86961)
@@ -5,6 +5,11 @@
 TODO: add tests for the viewlets !!!!
       Fix the workaround in getUrl of the utility.
 
+2008/02/01 1.0.4
+----------------
+
+ - make it possible to add collector items before the collector is defined
+
 2008/02/01 1.0.3
 ----------------
 

Modified: z3c.resourcecollector/trunk/setup.py
===================================================================
--- z3c.resourcecollector/trunk/setup.py	2008-05-26 09:36:51 UTC (rev 86960)
+++ z3c.resourcecollector/trunk/setup.py	2008-05-26 09:42:40 UTC (rev 86961)
@@ -3,7 +3,7 @@
 from setuptools import setup, find_packages, Extension
 
 setup(name='z3c.resourcecollector',
-      version='1.0.3',
+      version='1.0.4',
       url='https://svn.lovelysystems.com/repos/dev/package/z3c.resourcecollector',
       license='ZPL',
       description='',

Modified: z3c.resourcecollector/trunk/src/z3c/resourcecollector/zcml.py
===================================================================
--- z3c.resourcecollector/trunk/src/z3c/resourcecollector/zcml.py	2008-05-26 09:36:51 UTC (rev 86960)
+++ z3c.resourcecollector/trunk/src/z3c/resourcecollector/zcml.py	2008-05-26 09:42:40 UTC (rev 86961)
@@ -79,9 +79,16 @@
         )
 
 def handleCollectorItem(_context, collector, item, weight):
+    _context.action(
+        discriminator = (collector, item),
+        callable = addCollectorItem,
+        args = (collector, item, weight)
+        )
 
+def addCollectorItem(collector, item, weight):
     rs = zope.component.getUtility(ICollectorUtility, collector)
     resource = {}
     resource['weight']=weight
     resource['resource']=item
     rs.resources[item]=resource
+

Modified: z3c.resourcecollector/trunk/src/z3c/resourcecollector/zcml.txt
===================================================================
--- z3c.resourcecollector/trunk/src/z3c/resourcecollector/zcml.txt	2008-05-26 09:36:51 UTC (rev 86960)
+++ z3c.resourcecollector/trunk/src/z3c/resourcecollector/zcml.txt	2008-05-26 09:42:40 UTC (rev 86961)
@@ -119,7 +119,38 @@
   I am resource "res_test1.js"
   I am resource "res_test2.js"
 
+It is possible to add items to a collector which is declared later.
 
+  >>> context = xmlconfig.string('''
+  ... <configure xmlns="http://namespaces.zope.org/browser">
+  ...   <include package="z3c.resourcecollector" file="meta.zcml" />
+  ...   <collectorItem
+  ...    collector="later.js"
+  ...    item="res_test2.js"
+  ...    weight="1"
+  ...   />
+  ...   <collector
+  ...    name="later.js"
+  ...    type="zope.publisher.interfaces.browser.IBrowserRequest"
+  ... />
+  ... </configure>''')
+
+We get an error if we try to add an item to an unknown collector.
+
+  >>> context = xmlconfig.string('''
+  ... <configure xmlns="http://namespaces.zope.org/browser">
+  ...   <include package="z3c.resourcecollector" file="meta.zcml" />
+  ...   <collectorItem
+  ...    collector="unknown.js"
+  ...    item="res_test2.js"
+  ...    weight="1"
+  ...   />
+  ... </configure>''')
+  Traceback (most recent call last):
+  ConfigurationExecutionError: zope.component.interfaces.ComponentLookupError: (<InterfaceClass z3c.resourcecollector.interfaces.ICollectorUtility>, u'unknown.js')
+  ...
+
+
 Cascading Collectors
 --------------------
 



More information about the Checkins mailing list