Mercurial > hg-stable
changeset 19330:867b9957d895
templater: add strip function with chars as an extra argument
This allows specifying characters to strip, like the Python strip function.
author | Alexander Plavin <me@aplavin.ru> |
---|---|
date | Tue, 25 Jun 2013 21:02:22 +0400 |
parents | 84dc9669bd71 |
children | 666aa90258e6 |
files | mercurial/help/templates.txt mercurial/templater.py tests/test-command-template.t |
diffstat | 3 files changed, 41 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/help/templates.txt Mon Jun 24 14:02:01 2013 -0400 +++ b/mercurial/help/templates.txt Tue Jun 25 21:02:22 2013 +0400 @@ -62,6 +62,8 @@ - rstdoc(text, style) +- strip(text, chars) + Also, for any expression that returns a list, there is a list operator: - expr % "{template}"
--- a/mercurial/templater.py Mon Jun 24 14:02:01 2013 -0400 +++ b/mercurial/templater.py Tue Jun 25 21:02:22 2013 +0400 @@ -333,6 +333,16 @@ return util.datestr(date, fmt) return util.datestr(date) +def strip(context, mapping, args): + if not (1 <= len(args) <= 2): + raise error.ParseError(_("strip expects one or two arguments")) + + text = args[0][0](context, mapping, args[0][1]) + if len(args) == 2: + chars = args[1][0](context, mapping, args[1][1]) + return text.strip(chars) + return text.strip() + methods = { "string": lambda e, c: (runstring, e[1]), "symbol": lambda e, c: (runsymbol, e[1]), @@ -353,6 +363,7 @@ "sub": sub, "fill": fill, "date": date, + "strip": strip, } # template engine
--- a/tests/test-command-template.t Mon Jun 24 14:02:01 2013 -0400 +++ b/tests/test-command-template.t Tue Jun 25 21:02:22 2013 +0400 @@ -1536,3 +1536,31 @@ $ hg log -R latesttag -r 10 --template '{sub("[0-9]", "x", "{rev}")}\n' xx + +Test the strip function with chars specified: + + $ hg log -R latesttag --template '{desc}\n' + at3 + t5 + t3 + t2 + t1 + merge + h2e + h2d + h1c + b + a + + $ hg log -R latesttag --template '{strip(desc, "te")}\n' + at3 + 5 + 3 + 2 + 1 + merg + h2 + h2d + h1c + b + a