|
@@ -10,19 +10,23 @@ The following features are available:
|
|
|
<ul>
|
|
|
]])
|
|
|
|
|
|
-demo_data = {}
|
|
|
+demo_data_for_xml = {}
|
|
|
+demo_data_for_json = {}
|
|
|
|
|
|
function print_if_available(tab, name)
|
|
|
if tab then
|
|
|
mg.write("<li>" .. name .. " available</li>\n")
|
|
|
if type(tab)=="table" then
|
|
|
- demo_data[name] = {}
|
|
|
- demo_data[name][0] = name
|
|
|
+ demo_data_for_xml[name] = {}
|
|
|
+ demo_data_for_xml[name][0] = name
|
|
|
+ demo_data_for_json[name] = {}
|
|
|
for nname,nval in pairs(tab) do
|
|
|
- demo_data[name][nname] = type(nval)
|
|
|
+ demo_data_for_xml[name][nname] = type(nval)
|
|
|
+ demo_data_for_json[name][nname] = type(nval)
|
|
|
end
|
|
|
else
|
|
|
- demo_data[name] = type(tab)
|
|
|
+ demo_data_for_xml[name] = type(tab)
|
|
|
+ demo_data_for_json[name] = type(tab)
|
|
|
end
|
|
|
else
|
|
|
mg.write("<li>" .. name .. " not available</li>\n")
|
|
@@ -95,15 +99,16 @@ if package and (type(package.loaded)=="table") then
|
|
|
end
|
|
|
end
|
|
|
|
|
|
--- Print preloaded packages known to Lua
|
|
|
-if xml then
|
|
|
- mg.write("<li>xml</li>\n")
|
|
|
- recurse(xml)
|
|
|
-end
|
|
|
+-- Load path
|
|
|
+mg.write("<li>Package search path: " .. package.path .. "</li>\n");
|
|
|
|
|
|
--- Current date/time
|
|
|
+-- End of list
|
|
|
mg.write("</ul></p>\n");
|
|
|
-mg.write("<p> Today is " .. os.date("%A") .. "</p>\n");
|
|
|
+
|
|
|
+
|
|
|
+-- Current date/time
|
|
|
+mg.write("\n<hr/>\n")
|
|
|
+mg.write("<p>Today is " .. os.date("%A") .. "</p>\n");
|
|
|
|
|
|
-- Request content
|
|
|
mg.write("\n<hr/>\n")
|
|
@@ -113,7 +118,7 @@ if l then
|
|
|
mg.write(mg.read())
|
|
|
mg.write("\n</pre>\n</p>\n")
|
|
|
else
|
|
|
- mg.write("<p>not request content available</p>\n")
|
|
|
+ mg.write("<p>no request content available for " .. mg.request_info.request_method .. " method</p>\n")
|
|
|
end
|
|
|
|
|
|
-- Directory listing
|
|
@@ -155,7 +160,7 @@ function printTable(tab, indent)
|
|
|
mg.write(string.rep(" ", indent) .. tostring(k) .. ":\n")
|
|
|
printTable(v, indent + 1)
|
|
|
else
|
|
|
- mg.write(string.rep(" ", indent) .. tostring(k) .. "\t" .. v .. "\n")
|
|
|
+ mg.write(string.rep(" ", indent) .. tostring(k) .. "\t" .. tostring(v) .. "\n")
|
|
|
end
|
|
|
end
|
|
|
end
|
|
@@ -178,10 +183,67 @@ mg.write(htmlEsc(xml.str(xmlev, 1, "xml")))
|
|
|
mg.write("</pre>\n</p>\n")
|
|
|
|
|
|
mg.write("<p>lua2xml:<br>\n<pre>\n");
|
|
|
-mg.write(htmlEsc(xml.str(demo_data, 1, "xml")))
|
|
|
+mg.write(htmlEsc(xml.str(demo_data_for_xml, 1, "xml")))
|
|
|
mg.write("</pre>\n</p>\n")
|
|
|
end
|
|
|
|
|
|
+
|
|
|
+-- json test
|
|
|
+current_script_path = mg.script_name:match("(.*[%/%\\]).*%.lua")
|
|
|
+script_search_path = current_script_path .. "?.lua"
|
|
|
+package.path = script_search_path .. ";" .. package.path
|
|
|
+json = require "json"
|
|
|
+mg.write("\n<hr/>\n")
|
|
|
+mg.write("<p>json2lua:<br>\n<pre>\n");
|
|
|
+-- JSON example from https://en.wikipedia.org/wiki/JSON#Example
|
|
|
+jsonstr = [[{
|
|
|
+ "firstName": "John",
|
|
|
+ "lastName": "Smith",
|
|
|
+ "isAlive": true,
|
|
|
+ "age": 27,
|
|
|
+ "address": {
|
|
|
+ "streetAddress": "21 2nd Street",
|
|
|
+ "city": "New York",
|
|
|
+ "state": "NY",
|
|
|
+ "postalCode": "10021-3100"
|
|
|
+ },
|
|
|
+ "phoneNumbers": [
|
|
|
+ {
|
|
|
+ "type": "home",
|
|
|
+ "number": "212 555-1234"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "office",
|
|
|
+ "number": "646 555-4567"
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "type": "mobile",
|
|
|
+ "number": "123 456-7890"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "children": [],
|
|
|
+ "spouse": null
|
|
|
+}]]
|
|
|
+jsonev = json.decode(jsonstr)
|
|
|
+mg.write(htmlEsc(jsonstr))
|
|
|
+mg.write("\n-->\n")
|
|
|
+mg.write(type(jsonev) .. ":\n")
|
|
|
+mg.write(printTable(jsonev, 1))
|
|
|
+mg.write("</pre>\n</p>\n")
|
|
|
+
|
|
|
+mg.write("<p>lua2json:<br>\n<pre>\n");
|
|
|
+mg.write(htmlEsc(json.encode(jsonev)))
|
|
|
+mg.write("</pre>\n</p>\n")
|
|
|
+
|
|
|
+mg.write("<p>lua2json:<br>\n<pre>\n");
|
|
|
+mg.write(htmlEsc(json.encode(demo_data_for_json)))
|
|
|
+mg.write("</pre>\n</p>\n")
|
|
|
+
|
|
|
+
|
|
|
+-- Next section ...
|
|
|
+mg.write("\n<hr/>\n")
|
|
|
+
|
|
|
+
|
|
|
mg.write([[
|
|
|
</body></html>
|
|
|
]])
|