Download Install Tutorial Docs FAQ Tools WikiLicense Team IRC Planet Involvement Shop Book

Changeset 1371

Show
Ignore:
Timestamp:
09/16/06 17:39:44
Author:
fumanchu
Message:

Fix for #565 (Allow hooks to be programmatically attached).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/cherrypy/_cprequest.py

    r1369 r1371  
    8888        if exc: 
    8989            raise 
     90     
     91    def __copy__(self): 
     92        newmap = self.__class__() 
     93        # We can't just use 'update' because we want copies of the 
     94        # mutable values (each is a list) as well. 
     95        for k, v in self.iteritems(): 
     96            newmap[k] = v[:] 
     97        return newmap 
     98    copy = __copy__ 
    9099 
    91100 
     
    298307 
    299308 
     309hookpoints = ['on_start_resource', 'before_request_body', 
     310              'before_handler', 'before_finalize', 
     311              'on_end_resource', 'on_end_request', 
     312              'before_error_response', 'after_error_response'] 
     313 
     314 
    300315class Request(object): 
    301316    """An HTTP request.""" 
     
    337352    is_index = None 
    338353     
    339     hookpoints = ['on_start_resource', 'before_request_body', 
    340                   'before_handler', 'before_finalize', 
    341                   'on_end_resource', 'on_end_request', 
    342                   'before_error_response', 'after_error_response'] 
    343354    hooks = HookMap(hookpoints) 
    344355     
     
    502513                        self.process_headers() 
    503514                     
    504                     self.hooks = HookMap(self.hookpoints) 
     515                    # Make a copy of the class hooks 
     516                    self.hooks = self.__class__.hooks.copy() 
    505517                    self.get_resource(path_info) 
    506518                    self.configure() 

Hosted by WebFaction

Log in as guest/cpguest to create tickets