webmcp
view framework/env/slot/dump_all.lua @ 2:72860d232f32
Version 1.0.2
Fixed bug with explicit garbage collection (requests > 256kB caused an error)
Views prefixed with an underscore can't be called externally
ui.paginate now displays the last page, if the selected page number is too high.
Fixed bug with explicit garbage collection (requests > 256kB caused an error)
Views prefixed with an underscore can't be called externally
ui.paginate now displays the last page, if the selected page number is too high.
author | jbe/bsw |
---|---|
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