webmcp
diff libraries/mondelefant/mondelefant_atom_connector.lua @ 556:c228db239964
Only treat tables without metatable as array
author | jbe |
---|---|
date | Tue Feb 18 18:15:42 2020 +0100 (2020-02-18) |
parents | 7e874b5227b6 |
children | c839cbd66598 |
line diff
1.1 --- a/libraries/mondelefant/mondelefant_atom_connector.lua Mon Feb 10 20:47:58 2020 +0100 1.2 +++ b/libraries/mondelefant/mondelefant_atom_connector.lua Tue Feb 18 18:15:42 2020 +0100 1.3 @@ -113,7 +113,7 @@ 1.4 end 1.5 end 1.6 1.7 -input_converters["table"] = function(conn, value, rawtext_mode) 1.8 +input_converters["rawtable"] = function(conn, value, rawtext_mode) 1.9 -- treat tables as arrays 1.10 local parts = { "{" } 1.11 for i, v in ipairs(value) do 1.12 @@ -213,6 +213,16 @@ 1.13 if value == nil then 1.14 return "NULL" 1.15 else 1.16 + local mt = getmetatable(value) 1.17 + local converter = input_converters.mt 1.18 + if not converter then 1.19 + local t = type(value) 1.20 + if t == "table" and mt == nil then 1.21 + converter = input_converters.rawtable 1.22 + else 1.23 + converter = input.converters.t 1.24 + end 1.25 + end 1.26 local converter = 1.27 input_converters[getmetatable(value)] or 1.28 input_converters[type(value)]