changeset 236:eaf18442bff8

internal: Add support for "wildcard" loader in `LazyPageConfigData`.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 15 Feb 2015 22:42:58 -0800
parents 55087da9a72e
children 879fe1457e48
files piecrust/data/base.py
diffstat 1 files changed, 10 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/piecrust/data/base.py	Sat Feb 14 08:49:09 2015 -0800
+++ b/piecrust/data/base.py	Sun Feb 15 22:42:58 2015 -0800
@@ -83,6 +83,16 @@
                     if len(self._loaders) == 0:
                         self._loaders = None
 
+            elif name not in self._values:
+                loader = self._loaders.get('*')
+                if loader is not None:
+                    try:
+                        self._values[name] = loader(self, name)
+                    except Exception as ex:
+                        raise Exception(
+                                "Error while loading attirbute '%s' for: %s" %
+                                (name, self._page.rel_path)) from ex
+
         return self._values[name]
 
     def _setValue(self, name, value):