webmcp

view framework/env/slot/dump_all.lua @ 466:2751b6b81c23

Minor efficiency enhancement in <db_object>:try_save() method
author jbe
date Mon Nov 07 19:32:51 2016 +0100 (2016-11-07)
parents 9fdfb27f8e67
children
line source
1 --[[--
2 blob = -- string for later usage with slot.restore_all(...)
3 slot.dump_all()
5 Returns a single string, containing all slot contents. The result of this function can be used to restore all slots after a 303 redirect. This is done automatically by the WebMCP using slot.restore_all(...). If the result of this function is an empty string, then all slots are empty.
7 --]]--
9 local function encode(str)
10 return (
11 string.gsub(
12 str,
13 "[=;%[%]]",
14 function(char)
15 if char == "=" then return "[eq]"
16 elseif char == ";" then return "[s]"
17 elseif char == "[" then return "[o]"
18 elseif char == "]" then return "[c]"
19 else end
20 end
21 )
22 )
23 end
25 function slot.dump_all()
26 local blob_parts = {}
27 for key in pairs(slot._data) do
28 if type(key) == "string" then
29 local value = slot.get_content(key)
30 if value ~= "" then
31 blob_parts[#blob_parts + 1] = encode(key) .. "=" .. encode(value)
32 end
33 end
34 end
35 return table.concat(blob_parts, ";")
36 end

Impressum / About Us