summaryrefslogtreecommitdiff
path: root/pecan/decorators.py
diff options
context:
space:
mode:
authorJonathan LaCour <jonathan@cleverdevil.org>2011-06-17 14:46:03 -0400
committerJonathan LaCour <jonathan@cleverdevil.org>2011-06-17 14:46:03 -0400
commitcc648f80c53dc5f053b57538c2df19bd4ff98216 (patch)
tree73e20155bc01e518e019801061fc8b661f98b191 /pecan/decorators.py
parentf1bd2b237a33ec71caacecea617fd5ee95c33025 (diff)
downloadpecan-cc648f80c53dc5f053b57538c2df19bd4ff98216.tar.gz
Adding a feature for decorating methods to perform an action after a
commit is issued by the transaction hook.
Diffstat (limited to 'pecan/decorators.py')
-rw-r--r--pecan/decorators.py18
1 files changed, 13 insertions, 5 deletions
diff --git a/pecan/decorators.py b/pecan/decorators.py
index 27f1934..fcad924 100644
--- a/pecan/decorators.py
+++ b/pecan/decorators.py
@@ -97,13 +97,21 @@ def transactional(ignore_redirects=True):
'''
def deco(f):
- def wrap(*args, **kwargs):
- return f(*args, **kwargs)
- wrap.__transactional__ = True
- wrap.__transactional_ignore_redirects__ = ignore_redirects
- return wrap
+ _cfg(f)['transactional'] = True
+ _cfg(f)['transactional_ignore_redirects'] = ignore_redirects
+ return f
return deco
+
+def after_commit(action):
+ '''
+ '''
+ def deco(func):
+ _cfg(func).setdefault('after_commit', []).append(action)
+ return func
+ return deco
+
+
def accept_noncanonical(func):
'''
Flags a controller method as accepting non-canoncial URLs.