summaryrefslogtreecommitdiff
path: root/repoze/bfg/router.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-01-15 00:20:04 +0000
committerChris McDonough <chrism@agendaless.com>2009-01-15 00:20:04 +0000
commitc8cf2256655ee4b34ec501325b9016608b5cce5f (patch)
tree065c104d852d70389ce328813e2e8ea33e9885ce /repoze/bfg/router.py
parentec54985a5c27846a7e9444c22bcf46ae7e868b66 (diff)
downloadpyramid-c8cf2256655ee4b34ec501325b9016608b5cce5f.tar.gz
pyramid-c8cf2256655ee4b34ec501325b9016608b5cce5f.tar.bz2
pyramid-c8cf2256655ee4b34ec501325b9016608b5cce5f.zip
- Instead of invariably using ``webob.Request`` as the "request
factory" (e.g. in the ``Router`` class) and ``webob.Response`` and the "response factory" (e.g. in ``render_template_to_response``), allow both to be overridden via a ZCML utility hook. See the "Using ZCML Hooks" chapter of the documentation for more information.
Diffstat (limited to 'repoze/bfg/router.py')
-rw-r--r--repoze/bfg/router.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/repoze/bfg/router.py b/repoze/bfg/router.py
index 8e1b998d8..755434870 100644
--- a/repoze/bfg/router.py
+++ b/repoze/bfg/router.py
@@ -21,6 +21,7 @@ from repoze.bfg.events import WSGIApplicationCreatedEvent
from repoze.bfg.interfaces import ILogger
from repoze.bfg.interfaces import ITraverserFactory
from repoze.bfg.interfaces import IRequest
+from repoze.bfg.interfaces import IRequestFactory
from repoze.bfg.interfaces import HTTP_METHOD_INTERFACES
from repoze.bfg.interfaces import IRouter
@@ -45,6 +46,11 @@ class Router(object):
def __init__(self, registry):
self.registry = registry
+ @property
+ def root_policy(self):
+ """ Backwards compatibility alias """
+ return self.registry.getUtility(IRootFactory)
+
def __call__(self, environ, start_response):
"""
Accept ``environ`` and ``start_response``; route requests to
@@ -54,7 +60,8 @@ class Router(object):
registry_manager.push(self.registry)
try:
- request = Request(environ)
+ request_factory = queryUtility(IRequestFactory, default=Request)
+ request = request_factory(environ)
directlyProvides(request, IRequest)
also = HTTP_METHOD_INTERFACES.get(request.method)