webmcp
view framework/env/slot/dump_all.lua @ 3:795b764629ca
Version 1.0.3
Important bugfix related to internal forwards (Bug was introduced by the restriction of views with underscore prefix in Version 1.0.2)
Important bugfix related to internal forwards (Bug was introduced by the restriction of views with underscore prefix in Version 1.0.2)
| author | jbe |
|---|---|
| date | Thu Dec 10 12:00:00 2009 +0100 (2009-12-10) |
| 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
