diff options
-rw-r--r-- | paste/registry.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/paste/registry.py b/paste/registry.py index 05bca7b..68e7c03 100644 --- a/paste/registry.py +++ b/paste/registry.py @@ -275,6 +275,19 @@ class Registry(object): stacked._push_object(obj) myreglist = self.reglist[-1] myreglist[id(stacked)] = (stacked, obj) + + def replace(self, stacked, obj): + """Replace the object referenced by a StackedObjectProxy with a + different object + + In the event that no object has been registered, the new object will + be registered. + """ + myreglist = self.reglist[-1] + if id(stacked) in myreglist: + stacked._pop_object(myreglist[id(stacked)][1]) + stacked._push_object(obj) + self.register(stacked, obj) def cleanup(self): """Remove all objects from all StackedObjectProxy instances that |