diff options
Diffstat (limited to 'app/flask_extend.py')
-rw-r--r-- | app/flask_extend.py | 32 |
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 |