aboutsummaryrefslogtreecommitdiffstats
path: root/qface/generator.py
diff options
context:
space:
mode:
Diffstat (limited to 'qface/generator.py')
-rw-r--r--qface/generator.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/qface/generator.py b/qface/generator.py
index e65ad15..1e1da41 100644
--- a/qface/generator.py
+++ b/qface/generator.py
@@ -238,9 +238,11 @@ class RuleGenerator(Generator):
self.context.update(rule.get('context', {}))
self.destination = rule.get('destination', None)
self.source = rule.get('source', None)
- for target, source in rule.get('documents', {}).items():
+ for entry in rule.get('documents', []):
+ target, source = self._resolve_rule_document(entry)
self.write(target, source)
- for target, source in rule.get('preserve', {}).items():
+ for entry in rule.get('preserve', []):
+ target, source = self._resolve_rule_document(entry)
self.write(target, source, preserve=True)
def _shall_proceed(self, obj):
@@ -252,6 +254,11 @@ class RuleGenerator(Generator):
result = self.features.intersection(set(conditions))
return bool(len(result))
+ def _resolve_rule_document(self, entry):
+ if type(entry) is dict:
+ return next(iter(entry.items()))
+ return (entry, entry)
+
class FileSystem(object):
"""QFace helper functions to work with the file system"""