diff mercurial/templatekw.py @ 31882:ba5b74f780d5

templater: make _hybrid provide more list/dict-like methods So the JSON filter works.
author Yuya Nishihara <yuya@tcha.org>
date Tue, 04 Apr 2017 22:31:59 +0900
parents 31dad7a5b4ed
children 68c910fa9ee2
line wrap: on
line diff
--- a/mercurial/templatekw.py	Tue Apr 04 22:20:06 2017 +0900
+++ b/mercurial/templatekw.py	Tue Apr 04 22:31:59 2017 +0900
@@ -28,6 +28,7 @@
     and to access raw values:
     - "{ifcontains(file, files, ...)}", "{ifcontains(key, extras, ...)}"
     - "{get(extras, key)}"
+    - "{files|json}"
     """
 
     def __init__(self, gen, values, makemap, joinfmt):
@@ -43,8 +44,11 @@
         return x in self._values
     def __len__(self):
         return len(self._values)
+    def __iter__(self):
+        return iter(self._values)
     def __getattr__(self, name):
-        if name != 'get':
+        if name not in ('get', 'items', 'iteritems', 'iterkeys', 'itervalues',
+                        'keys', 'values'):
             raise AttributeError(name)
         return getattr(self._values, name)