Diff

util/human/io.lua @ 10911:9dc34e1556d9

util.human.io.table: Allow a map callaback per column This allows e.g. mapping booleans to "yes" or "no", specific number formatting or generating virtual columns. All while not mutating the underlying data or creating additional temporary tables.
author Kim Alvefur <zash@zash.se>
date Thu, 04 Jun 2020 21:32:28 +0200
parent 10910:e890b83f08cf
child 10917:1eb83bc6f706
line wrap: on
line diff
--- a/util/human/io.lua	Thu Jun 04 18:40:37 2020 +0200
+++ b/util/human/io.lua	Thu Jun 04 21:32:28 2020 +0200
@@ -131,7 +131,7 @@
 		local output = {};
 		for i, column in ipairs(col_specs) do
 			local width = widths[i];
-			local v = tostring(row[not titles and column.key or i] or "");
+			local v = (not titles and column.mapper or tostring)(row[not titles and column.key or i] or "", row);
 			if #v < width then
 				if column.align == "right" then
 					v = padleft(v, width-1).." ";