webmcp

annotate framework/env/slot/dump_all.lua @ 405:c5f9a1b2f225

Updated year of copyright notice
author jbe
date Wed Jan 06 02:54:45 2016 +0100 (2016-01-06)
parents 9fdfb27f8e67
children
rev   line source
jbe/bsw@0 1 --[[--
jbe/bsw@0 2 blob = -- string for later usage with slot.restore_all(...)
jbe/bsw@0 3 slot.dump_all()
jbe/bsw@0 4
jbe/bsw@0 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.
jbe/bsw@0 6
jbe/bsw@0 7 --]]--
jbe/bsw@0 8
jbe/bsw@0 9 local function encode(str)
jbe/bsw@0 10 return (
jbe/bsw@0 11 string.gsub(
jbe/bsw@0 12 str,
jbe/bsw@0 13 "[=;%[%]]",
jbe/bsw@0 14 function(char)
jbe/bsw@0 15 if char == "=" then return "[eq]"
jbe/bsw@0 16 elseif char == ";" then return "[s]"
jbe/bsw@0 17 elseif char == "[" then return "[o]"
jbe/bsw@0 18 elseif char == "]" then return "[c]"
jbe/bsw@0 19 else end
jbe/bsw@0 20 end
jbe/bsw@0 21 )
jbe/bsw@0 22 )
jbe/bsw@0 23 end
jbe/bsw@0 24
jbe/bsw@0 25 function slot.dump_all()
jbe/bsw@0 26 local blob_parts = {}
jbe/bsw@0 27 for key in pairs(slot._data) do
jbe/bsw@0 28 if type(key) == "string" then
jbe/bsw@0 29 local value = slot.get_content(key)
jbe/bsw@0 30 if value ~= "" then
jbe/bsw@0 31 blob_parts[#blob_parts + 1] = encode(key) .. "=" .. encode(value)
jbe/bsw@0 32 end
jbe/bsw@0 33 end
jbe/bsw@0 34 end
jbe/bsw@0 35 return table.concat(blob_parts, ";")
jbe/bsw@0 36 end

Impressum / About Us