summaryrefslogtreecommitdiff
path: root/city/util.lua
diff options
context:
space:
mode:
Diffstat (limited to 'city/util.lua')
-rw-r--r--city/util.lua37
1 files changed, 37 insertions, 0 deletions
diff --git a/city/util.lua b/city/util.lua
new file mode 100644
index 0000000..49ead55
--- /dev/null
+++ b/city/util.lua
@@ -0,0 +1,37 @@
+local util = {}
+
+util.table_str = function(tbl, recursive, indent)
+ local tab = '\t'
+
+ local recursive = recursive or false
+ local indent = indent or ''
+
+ local str = '{'
+
+ for key, value in pairs(tbl) do
+ local key_str, value_str
+ if type(key) == 'table' and recursive then
+ key_str = util.table_str(key, recursive, indent..tab)
+ else
+ key_str = tostring(key)
+ end
+
+ if type(value) == 'table' and recursive then
+ value_str = util.table_str(value, recursive, indent..tab)
+ else
+ value_str = tostring(value)
+ end
+
+ str = str .. string.format(
+ '\n%s%s = %s', indent..tab,
+ key_str, value_str)
+ end
+
+ if string.len(str) > 1 then
+ str = str .. '\n' .. indent
+ end
+ str = str .. '}'
+ return str
+end
+
+return util