webmcp
annotate framework/env/encode/format_options.lua @ 1:985024b16520
Version 1.0.1
New feature: JSON requests
Changes in ui.paginate: Current page setting is directly fetched from CGI params, instead of view params
Changed behavior of load methods of atom library to accept nil as input
Bugfixes in mondelefant_atom_connector timestamp(tz) loaders
Added global constant _WEBMCP_VERSION containing a version string
New feature: JSON requests
Changes in ui.paginate: Current page setting is directly fetched from CGI params, instead of view params
Changed behavior of load methods of atom library to accept nil as input
Bugfixes in mondelefant_atom_connector timestamp(tz) loaders
Added global constant _WEBMCP_VERSION containing a version string
author | jbe |
---|---|
date | Tue Nov 17 12:00:00 2009 +0100 (2009-11-17) |
parents | 9fdfb27f8e67 |
children |
rev | line source |
---|---|
jbe/bsw@0 | 1 --[[-- |
jbe/bsw@0 | 2 string = -- part of string to be used as __format information |
jbe/bsw@0 | 3 encode.format_options( |
jbe/bsw@0 | 4 params -- arguments for format function |
jbe/bsw@0 | 5 ) |
jbe/bsw@0 | 6 |
jbe/bsw@0 | 7 This function is used by encode.format_info(...). |
jbe/bsw@0 | 8 |
jbe/bsw@0 | 9 --]]-- |
jbe/bsw@0 | 10 |
jbe/bsw@0 | 11 function encode.format_options(params) |
jbe/bsw@0 | 12 local params = params or {} |
jbe/bsw@0 | 13 local result_parts = {} |
jbe/bsw@0 | 14 for key, value in pairs(params) do |
jbe/bsw@0 | 15 if type(key) == "string" then |
jbe/bsw@0 | 16 if string.find(key, "^[A-Za-z][A-Za-z0-9_]*$") then |
jbe/bsw@0 | 17 table.insert(result_parts, "-") |
jbe/bsw@0 | 18 table.insert(result_parts, key) |
jbe/bsw@0 | 19 table.insert(result_parts, "-") |
jbe/bsw@0 | 20 local t = type(value) |
jbe/bsw@0 | 21 if t == "string" then |
jbe/bsw@0 | 22 value = string.gsub(value, "\\", "\\\\") |
jbe/bsw@0 | 23 value = string.gsub(value, "'", "\\'") |
jbe/bsw@0 | 24 table.insert(result_parts, "'") |
jbe/bsw@0 | 25 table.insert(result_parts, value) |
jbe/bsw@0 | 26 table.insert(result_parts, "'") |
jbe/bsw@0 | 27 elseif t == "number" then |
jbe/bsw@0 | 28 table.insert(result_parts, tostring(value)) |
jbe/bsw@0 | 29 elseif t == "boolean" then |
jbe/bsw@0 | 30 table.insert(result_parts, value and "true" or "false") |
jbe/bsw@0 | 31 else |
jbe/bsw@0 | 32 error("Format parameter table contained value of unsupported type " .. t .. ".") |
jbe/bsw@0 | 33 end |
jbe/bsw@0 | 34 else |
jbe/bsw@0 | 35 error('Format parameter table contained invalid key "' .. key .. '".') |
jbe/bsw@0 | 36 end |
jbe/bsw@0 | 37 end |
jbe/bsw@0 | 38 end |
jbe/bsw@0 | 39 return table.concat(result_parts) |
jbe/bsw@0 | 40 end |