[Repoze-checkins] r1255 - in repoze.bfg/trunk/repoze/bfg: . sampleapp

Chris McDonough chrism at agendaless.com
Tue Jul 8 22:10:29 EDT 2008


Author: Chris McDonough <chrism at agendaless.com>
Date: Tue Jul  8 22:10:28 2008
New Revision: 1255

Log:
Provide a policy for doing redirects.


Modified:
   repoze.bfg/trunk/repoze/bfg/router.py
   repoze.bfg/trunk/repoze/bfg/sampleapp/run.py

Modified: repoze.bfg/trunk/repoze/bfg/router.py
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/router.py	(original)
+++ repoze.bfg/trunk/repoze/bfg/router.py	Tue Jul  8 22:10:28 2008
@@ -15,8 +15,9 @@
 _marker = ()
 
 class Router:
-    def __init__(self, root_policy):
+    def __init__(self, root_policy, default_redirects=True):
         self.root_policy = root_policy
+        self.default_redirects = True
 
     def __call__(self, environ, start_response):
         request = Request(environ)
@@ -25,7 +26,7 @@
         path = environ.get('PATH_INFO', '/')
         traverser = getMultiAdapter((root, request), IPublishTraverserFactory)
         context, name, subpath = traverser(path)
-        if (not name) and (not path.endswith('/')):
+        if self.default_redirects and (not name) and (not path.endswith('/')):
             # if this is the default view of the context, and the URL
             # doesn't end in a slash, redirect to the url + '/' (so we
             # don't have to play base tag games)
@@ -40,9 +41,10 @@
                 app = getMultiAdapter((app, request), IWSGIApplicationFactory)
         return app(environ, start_response)
 
-def make_app(root_policy, package=None, filename='configure.zcml'):
+def make_app(root_policy, package=None, default_redirects=True,
+             filename='configure.zcml'):
     import zope.configuration.xmlconfig
     zope.configuration.xmlconfig.file(filename, package=package)
-    return Router(root_policy)
+    return Router(root_policy, default_redirects)
 
     

Modified: repoze.bfg/trunk/repoze/bfg/sampleapp/run.py
==============================================================================
--- repoze.bfg/trunk/repoze/bfg/sampleapp/run.py	(original)
+++ repoze.bfg/trunk/repoze/bfg/sampleapp/run.py	Tue Jul  8 22:10:28 2008
@@ -3,7 +3,7 @@
 from repoze.bfg.sampleapp.models import BlogEntry
 from repoze.bfg.router import make_app
 
-if __name__ == '__main__':
+def main():
     blog = Blog('Sample blog')
     blog['sample'] = BlogEntry('sample', 'Sample Blog Entry',
                                '<p>This is a sample blog entry</p>',
@@ -18,3 +18,7 @@
 ##         )
     from paste import httpserver
     httpserver.serve(app, host='0.0.0.0', port='5432')
+
+if __name__ == '__main__':
+    main()
+    


More information about the Repoze-checkins mailing list