diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-01-15 00:20:04 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-01-15 00:20:04 +0000 |
| commit | c8cf2256655ee4b34ec501325b9016608b5cce5f (patch) | |
| tree | 065c104d852d70389ce328813e2e8ea33e9885ce /repoze/bfg/router.py | |
| parent | ec54985a5c27846a7e9444c22bcf46ae7e868b66 (diff) | |
| download | pyramid-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.py | 9 |
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) |
