mercurial/templatekw.py
changeset 31880 a0f2d83f8083
parent 31879 868ec199cad0
child 31881 31dad7a5b4ed
equal deleted inserted replaced
31879:868ec199cad0 31880:a0f2d83f8083
    33     def __init__(self, gen, values, makemap, joinfmt):
    33     def __init__(self, gen, values, makemap, joinfmt):
    34         self.gen = gen
    34         self.gen = gen
    35         self.values = values
    35         self.values = values
    36         self._makemap = makemap
    36         self._makemap = makemap
    37         self.joinfmt = joinfmt
    37         self.joinfmt = joinfmt
    38     def __iter__(self):
       
    39         return self.gen
       
    40     def itermaps(self):
    38     def itermaps(self):
    41         makemap = self._makemap
    39         makemap = self._makemap
    42         for x in self.values:
    40         for x in self.values:
    43             yield makemap(x)
    41             yield makemap(x)
    44     def __contains__(self, x):
    42     def __contains__(self, x):
    47         return len(self.values)
    45         return len(self.values)
    48     def __getattr__(self, name):
    46     def __getattr__(self, name):
    49         if name != 'get':
    47         if name != 'get':
    50             raise AttributeError(name)
    48             raise AttributeError(name)
    51         return getattr(self.values, name)
    49         return getattr(self.values, name)
       
    50 
       
    51 def unwraphybrid(thing):
       
    52     """Return an object which can be stringified possibly by using a legacy
       
    53     template"""
       
    54     if not util.safehasattr(thing, 'gen'):
       
    55         return thing
       
    56     return thing.gen
    52 
    57 
    53 def showlist(name, values, plural=None, element=None, separator=' ', **args):
    58 def showlist(name, values, plural=None, element=None, separator=' ', **args):
    54     if not element:
    59     if not element:
    55         element = name
    60         element = name
    56     f = _showlist(name, values, plural, separator, **args)
    61     f = _showlist(name, values, plural, separator, **args)