keyword: use templatefilter to mark a function as template filter
This patch also adds test for filter 'svnisodate' and 'svnutcdate' for
safety, because there is no test using them, yet.
--- a/hgext/keyword.py Wed Mar 30 02:10:44 2016 +0900
+++ b/hgext/keyword.py Wed Mar 30 02:10:44 2016 +0900
@@ -104,6 +104,7 @@
match,
patch,
pathutil,
+ registrar,
scmutil,
templatefilters,
util,
@@ -137,28 +138,29 @@
'kwfiles.ignoredunknown': 'none'
}
+templatefilter = registrar.templatefilter()
+
# date like in cvs' $Date
+@templatefilter('utcdate')
def utcdate(text):
- ''':utcdate: Date. Returns a UTC-date in this format: "2009/08/18 11:00:13".
+ '''Date. Returns a UTC-date in this format: "2009/08/18 11:00:13".
'''
return util.datestr((util.parsedate(text)[0], 0), '%Y/%m/%d %H:%M:%S')
# date like in svn's $Date
+@templatefilter('svnisodate')
def svnisodate(text):
- ''':svnisodate: Date. Returns a date in this format: "2009-08-18 13:00:13
+ '''Date. Returns a date in this format: "2009-08-18 13:00:13
+0200 (Tue, 18 Aug 2009)".
'''
return util.datestr(text, '%Y-%m-%d %H:%M:%S %1%2 (%a, %d %b %Y)')
# date like in svn's $Id
+@templatefilter('svnutcdate')
def svnutcdate(text):
- ''':svnutcdate: Date. Returns a UTC-date in this format: "2009-08-18
+ '''Date. Returns a UTC-date in this format: "2009-08-18
11:00:13Z".
'''
return util.datestr((util.parsedate(text)[0], 0), '%Y-%m-%d %H:%M:%SZ')
-templatefilters.filters.update({'utcdate': utcdate,
- 'svnisodate': svnisodate,
- 'svnutcdate': svnutcdate})
-
# make keyword tools accessible
kwtools = {'templater': None, 'hgcmd': ''}
--- a/tests/test-keyword.t Wed Mar 30 02:10:44 2016 +0900
+++ b/tests/test-keyword.t Wed Mar 30 02:10:44 2016 +0900
@@ -51,6 +51,31 @@
Branch = {branches}
$Branch: demobranch $
+(test template filter svnisodate and svnutcdate)
+
+ $ hg --quiet kwdemo --config keywordset.svn=True
+ [extensions]
+ keyword =
+ [keyword]
+ demo.txt =
+ [keywordset]
+ svn = True
+ [keywordmaps]
+ Author = {author|user}
+ Date = {date|svnisodate}
+ Id = {file|basename},v {node|short} {date|svnutcdate} {author|user}
+ LastChangedBy = {author|user}
+ LastChangedDate = {date|svnisodate}
+ LastChangedRevision = {node|short}
+ Revision = {node|short}
+ $Author: test $
+ $Date: ????-??-?? ??:??:?? ????? (???, ?? ??? ????) $ (glob)
+ $Id: demo.txt,v ???????????? ????-??-?? ??:??:??Z test $ (glob)
+ $LastChangedBy: test $
+ $LastChangedDate: ????-??-?? ??:??:?? ????? (???, ?? ??? ????) $ (glob)
+ $LastChangedRevision: ???????????? $ (glob)
+ $Revision: ???????????? $ (glob)
+
$ cat <<EOF >> $HGRCPATH
> [keyword]
> ** =