[Checkins] SVN: hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/ Set injector config. Add len to neededinclusions class. Set neededinclusions for every request.

Jan-Jaap Driessen jdriessen at thehealthagency.com
Wed Nov 24 02:43:51 EST 2010


Log message for revision 118544:
  Set injector config. Add len to neededinclusions class. Set neededinclusions for every request.

Changed:
  U   hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/core.py
  U   hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/wsgi.py

-=-
Modified: hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/core.py
===================================================================
--- hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/core.py	2010-11-24 00:47:41 UTC (rev 118543)
+++ hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/core.py	2010-11-24 07:43:50 UTC (rev 118544)
@@ -183,14 +183,20 @@
                  rollup=False,
                  bottom=False,
                  force_bottom=False,
+                 devmode=False,
+                 publisher_signature=''
                  ):
         self.base_url = base_url
+        self.devmode = devmode
+        self.publisher_signature = publisher_signature
         self._inclusions = inclusions or []
         self._mode = mode
         self._rollup = rollup
         self._bottom = bottom
-        self._force_bottom = force_bottom
 
+    def __len__(self):
+        return len(self._inclusions)
+
     def need(self, inclusion):
         self._inclusions.append(inclusion)
 
@@ -214,7 +220,7 @@
 
     def library_url(self, library):
         return '%s%s/%s/' % (self.base_url, library.signature(), library.name)
-        
+
     def render(self):
         """Render a set of inclusions.
         """

Modified: hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/wsgi.py
===================================================================
--- hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/wsgi.py	2010-11-24 00:47:41 UTC (rev 118543)
+++ hurry.resource/branches/janjaapdriessen-resource-publisher/src/hurry/resource/wsgi.py	2010-11-24 07:43:50 UTC (rev 118544)
@@ -1,5 +1,9 @@
 import webob
+
+from paste.util import asbool
+
 import hurry.resource
+from hurry.resource import NeededInclusions
 
 NEEDED = 'hurry.resource.needed'
 
@@ -10,15 +14,19 @@
 
 class InjectMiddleWare(object):
 
-    def __init__(self, application, signature):
+    def __init__(self, application, devmode=False,
+                 publisher_signature='fanstatic'):
         self.application = application
+        self.devmode = devmode
+        self.publisher_signature = publisher_signature
 
     def __call__(self, environ, start_response):
         request = webob.Request(environ)
 
-        # XXX the needed inclusions object is created here and the
-        # signature should be set on it as would the mode and dev_mode
-        # etcetera.
+        needed = NeededInclusions(
+            devmode=self.devmode,
+            publisher_signature=self.publisher_signature)
+        request.environ[NEEDED] = needed
 
         # Get the response from the wrapped application:
         response = request.get_response(self.application)
@@ -30,11 +38,12 @@
 
         # The wrapped application may have left information in the environment
         # about needed inclusions.
-        needed = response.environ.get(NEEDED)
-        if needed is not None:
+        if len(needed):
             response.body = needed.render_topbottom_into_html(response.body)
         return response(environ, start_response)
 
 def make_inject(app, global_config, **local_config):
-    return InjectMiddleWare(
-        app, hurry.resource.publisher_signature, **local_config)
+    devmode = local_config.pop('devmode')
+    if devmode is not None:
+        local_config['devmode'] = asbool(devmode)
+    return InjectMiddleWare(app, **local_config)



More information about the checkins mailing list