util.http: Refactor and import all necessary functions
authorMatthew Wild <mwild1@gmail.com>
Fri, 12 Apr 2013 20:26:35 +0100
changeset 5471 34bfd26525f5
parent 5470 a62c1d4ec4ab
child 5472 7c631ef43b11
util.http: Refactor and import all necessary functions
util/http.lua
--- a/util/http.lua	Tue Apr 09 15:50:46 2013 +0200
+++ b/util/http.lua	Fri Apr 12 20:26:35 2013 +0100
@@ -5,12 +5,14 @@
 -- COPYING file in the source package for more information.
 --
 
-local http = {};
+local format, char = string.format, string.char;
+local pairs, ipairs, tonumber = pairs, ipairs, tonumber;
+local t_insert, t_concat = table.insert, table.concat;
 
-function http.urlencode(s)
+local function urlencode(s)
 	return s and (s:gsub("[^a-zA-Z0-9.~_-]", function (c) return format("%%%02x", c:byte()); end));
 end
-function http.urldecode(s)
+local function urldecode(s)
 	return s and (s:gsub("%%(%x%x)", function (c) return char(tonumber(c,16)); end));
 end
 
@@ -24,7 +26,7 @@
 	end));
 end
 
-function http.formencode(form)
+local function formencode(form)
 	local result = {};
 	if form[1] then -- Array of ordered { name, value }
 		for _, field in ipairs(form) do
@@ -38,7 +40,7 @@
 	return t_concat(result, "&");
 end
 
-function http.formdecode(s)
+local function formdecode(s)
 	if not s:match("=") then return urldecode(s); end
 	local r = {};
 	for k, v in s:gmatch("([^=&]*)=([^&]*)") do
@@ -50,11 +52,13 @@
 	return r;
 end
 
-function http.contains_token(field, token)
+local function contains_token(field, token)
 	field = ","..field:gsub("[ \t]", ""):lower()..",";
 	return field:find(","..token:lower()..",", 1, true) ~= nil;
 end
 
-
-
-return http;
+return {
+	urlencode = urlencode, urldecode = urldecode;
+	formencode = formencode, formdecode = formdecode;
+	contains_token = contains_token;
+};