summaryrefslogtreecommitdiff
path: root/repoze/bfg/chameleon_text.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-12-17 01:17:48 +0000
committerChris McDonough <chrism@agendaless.com>2009-12-17 01:17:48 +0000
commit5babbaf48a71af786d41f59a1f1f7d5272a60a4d (patch)
tree4c3c4264e73410db07baffaebd879b36c4ae5aed /repoze/bfg/chameleon_text.py
parent0bf2866211d095a18a5c61d7af644c8e17486e6e (diff)
downloadpyramid-5babbaf48a71af786d41f59a1f1f7d5272a60a4d.tar.gz
pyramid-5babbaf48a71af786d41f59a1f1f7d5272a60a4d.tar.bz2
pyramid-5babbaf48a71af786d41f59a1f1f7d5272a60a4d.zip
- When Chameleon page or text templates were added imperatively (via
``Configurator.add_view`` or some derivative), they too-eagerly attempted to look up the ``reload_templates`` setting via ``get_settings``, meaning they were always registered in non-auto-reload-mode (the default). Each now waits until its respective ``template`` attribute is accessed to look up the value.
Diffstat (limited to 'repoze/bfg/chameleon_text.py')
-rw-r--r--repoze/bfg/chameleon_text.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/repoze/bfg/chameleon_text.py b/repoze/bfg/chameleon_text.py
index 50491a3d0..9cb1c989a 100644
--- a/repoze/bfg/chameleon_text.py
+++ b/repoze/bfg/chameleon_text.py
@@ -20,6 +20,7 @@ except ImportError: # pragma: no cover
from repoze.bfg.interfaces import IResponseFactory
from repoze.bfg.interfaces import ITemplateRenderer
+from repoze.bfg.decorator import reify
from repoze.bfg.renderers import template_renderer_factory
from repoze.bfg.settings import get_settings
from repoze.bfg.threadlocal import get_current_registry
@@ -40,9 +41,13 @@ def renderer_factory(path):
class TextTemplateRenderer(object):
implements(ITemplateRenderer)
def __init__(self, path):
+ self.path = path
+
+ @reify
+ def template(self):
settings = get_settings()
auto_reload = settings and settings['reload_templates']
- self.template = TextTemplateFile(path, auto_reload=auto_reload)
+ return TextTemplateFile(self.path, auto_reload=auto_reload)
def implementation(self):
return self.template