summaryrefslogtreecommitdiff
path: root/app/flask_extend.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--app/flask_extend.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/app/flask_extend.py b/app/flask_extend.py
new file mode 100644
index 0000000..5096d17
--- /dev/null
+++ b/app/flask_extend.py
@@ -0,0 +1,32 @@
+from flask import Flask as _Flask
+from flask import Blueprint as _Blueprint
+
+if not hasattr(_Flask, 'template_test'):
+# model `template_test` -- introduced with flask-0.10
+ class Flask(_Flask):
+ def template_test(self, name=None):
+ def decorator(f):
+ self.add_template_test(f, name=name)
+ return f
+ return decorator
+
+ def add_template_test(self, f, name=None):
+ self.jinja_env.tests[name or f.__name__] = f
+
+ class Blueprint(_Blueprint):
+ def app_template_test(self, name=None):
+ def decorator(f):
+ self.add_app_template_test(f, name=name)
+ return f
+ return decorator
+
+ def add_app_template_test(self, f, name=None):
+ def register_template(state):
+ state.app.jinja_env.tests[name or f.__name__] = f
+ self.record_once(register_template)
+
+else:
+ Flask = _Flask
+ Blueprint = _Blueprint
+
+del _Flask, _Blueprint