webmcp
view framework/env/slot/restore_all.lua @ 270:aedd13009ddc
Proper handling of 404's and mime types for static file delivery
| author | jbe | 
|---|---|
| date | Fri Mar 20 16:38:37 2015 +0100 (2015-03-20) | 
| parents | 9fdfb27f8e67 | 
| children | 
 line source
     1 --[[--
     2 slot.restore_all(
     3   blob             -- string as returned by slot.dump_all()
     4 )
     6 Restores all slots using a string created by slot.dump_all().
     8 --]]--
    10 local function decode(str)
    11   return (
    12     string.gsub(
    13       str,
    14       "%[[a-z]+%]",
    15       function(char)
    16         if char == "[eq]" then return "="
    17         elseif char == "[s]" then return ";"
    18         elseif char == "[o]" then return "["
    19         elseif char == "[c]" then return "]"
    20         else end
    21       end
    22     )
    23   )
    24 end
    26 function slot.restore_all(blob)
    27   slot.reset_all()
    28   for encoded_key, encoded_value in string.gmatch(blob, "([^=;]*)=([^=;]*)") do
    29     local key, value = decode(encoded_key), decode(encoded_value)
    30     slot._data[key].string_fragments = { value }
    31   end
    32 end
