changeset 22474:9da0ef363861

formatter: extract function that encode values to json string This is the stub for tuple support, which will be used to encode ctx.date() in the same manner as jsonchangeset printer.
author Yuya Nishihara <yuya@tcha.org>
date Wed, 17 Sep 2014 21:15:43 +0900
parents ca85306b3eb2
children 17eeda31e52b
files mercurial/formatter.py
diffstat 1 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/formatter.py	Fri Sep 12 21:38:52 2014 -0400
+++ b/mercurial/formatter.py	Wed Sep 17 21:15:43 2014 +0900
@@ -88,6 +88,12 @@
         baseformatter.end(self)
         self._ui.write(cPickle.dumps(self._data))
 
+def _jsonifyobj(v):
+    if isinstance(v, int):
+        return '%d' % v
+    else:
+        return '"%s"' % encoding.jsonescape(v)
+
 class jsonformatter(baseformatter):
     def __init__(self, ui, topic, opts):
         baseformatter.__init__(self, ui, topic, opts)
@@ -106,10 +112,7 @@
                 first = False
             else:
                 self._ui.write(",\n")
-            if isinstance(v, int):
-                self._ui.write('  "%s": %d' % (k, v))
-            else:
-                self._ui.write('  "%s": "%s"' % (k, encoding.jsonescape(v)))
+            self._ui.write('  "%s": %s' % (k, _jsonifyobj(v)))
         self._ui.write("\n }")
     def end(self):
         baseformatter.end(self)