From 81a833da2adff04d11b9228406bbc1528be65c64 Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Sat, 24 Jul 2010 07:04:49 +0000 Subject: - A new method of the ``Configurator`` exists: ``set_request_factory``. If used, this method will set the factory used by the :mod:`repoze.bfg` router to create all request objects. - The ``Configurator`` constructor takes an additional argument: ``request_factory``. If used, this argument will set the factory used by the :mod:`repoze.bfg` router to create all request objects. - The ``Hooks`` narrative chapter now contains a section about changing the request factory. --- repoze/bfg/router.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'repoze/bfg/router.py') diff --git a/repoze/bfg/router.py b/repoze/bfg/router.py index d63eceb32..ed187240c 100644 --- a/repoze/bfg/router.py +++ b/repoze/bfg/router.py @@ -7,6 +7,7 @@ from repoze.bfg.interfaces import IRequest from repoze.bfg.interfaces import IRootFactory from repoze.bfg.interfaces import IRouteRequest from repoze.bfg.interfaces import IRouter +from repoze.bfg.interfaces import IRequestFactory from repoze.bfg.interfaces import IRoutesMapper from repoze.bfg.interfaces import ISettings from repoze.bfg.interfaces import ITraverser @@ -36,9 +37,10 @@ class Router(object): self.logger = q(IDebugLogger) self.root_factory = q(IRootFactory, default=DefaultRootFactory) self.routes_mapper = q(IRoutesMapper) + self.request_factory = q(IRequestFactory, default=Request) self.root_policy = self.root_factory # b/w compat self.registry = registry - settings = registry.queryUtility(ISettings) + settings = q(ISettings) if settings is not None: self.debug_notfound = settings['debug_notfound'] @@ -60,7 +62,7 @@ class Router(object): try: # create the request - request = Request(environ) + request = self.request_factory(environ) context = None threadlocals['request'] = request attrs = request.__dict__ -- cgit v1.2.3