diff mercurial/templatekw.py @ 24241:e7baf88c29c3

templatekw: forward _hybrid.get to raw values so that get(extras, key) works ef78450c8df6 implies that the primary goal is to allow "{get(extras, key)}", but it didn't work. I'm not sure if _hybrid should forward all unknown attributes to values, so only "get" is forwarded for now.
author Yuya Nishihara <yuya@tcha.org>
date Wed, 18 Feb 2015 23:17:52 +0900
parents bd504d90588d
children 696ab1a24ae0
line wrap: on
line diff
--- a/mercurial/templatekw.py	Wed Feb 18 23:01:33 2015 +0900
+++ b/mercurial/templatekw.py	Wed Feb 18 23:17:52 2015 +0900
@@ -14,6 +14,7 @@
 #  "{files % '{file}\n'}" (hgweb-style with inlining and function support)
 # and to access raw values:
 #  "{ifcontains(file, files, ...)}", "{ifcontains(key, extras, ...)}"
+#  "{get(extras, key)}"
 
 class _hybrid(object):
     def __init__(self, gen, values, makemap, joinfmt=None):
@@ -34,6 +35,10 @@
         return x in self.values
     def __len__(self):
         return len(self.values)
+    def __getattr__(self, name):
+        if name != 'get':
+            raise AttributeError(name)
+        return getattr(self.values, name)
 
 def showlist(name, values, plural=None, element=None, **args):
     if not element: