Software /
code /
prosody
Changeset
548:c80137472280
Automated merge with http://waqas.ath.cx/
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 04 Dec 2008 18:49:00 +0000 |
parents | 547:265c4b8f0a8a (diff) 545:60002993be04 (current diff) |
children | 551:53dc98ffde16 |
files | |
diffstat | 3 files changed, 85 insertions(+), 69 deletions(-) [+] |
line wrap: on
line diff
--- a/tools/ejabberd2prosody.lua Thu Dec 04 18:47:26 2008 +0000 +++ b/tools/ejabberd2prosody.lua Thu Dec 04 18:49:00 2008 +0000 @@ -21,9 +21,9 @@ require "erlparse"; -require "serialize"; package.path = package.path ..";../?.lua"; +local serialize = require "util.serialization".serialize; local st = require "util.stanza"; package.loaded["util.logger"] = {init = function() return function() end; end} local dm = require "util.datamanager" @@ -74,7 +74,7 @@ elseif tuple[1] == "xmlcdata" then stanza:text(tuple[2]); else - error("unknown element type: "..serialize.serialize(tuple)); + error("unknown element type: "..serialize(tuple)); end end function build_time(tuple) @@ -190,7 +190,7 @@ count = count + 1; local name = item[1]; t[name] = (t[name] or 0) + 1; - --print(count, serialize.serialize(item)); + --print(count, serialize(item)); if filters[name] then filters[name](item); end end ---print(serialize.serialize(t)); +--print(serialize(t));
--- a/tools/serialize.lua Thu Dec 04 18:47:26 2008 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ --- Prosody IM v0.1 --- Copyright (C) 2008 Matthew Wild --- Copyright (C) 2008 Waqas Hussain --- --- This program is free software; you can redistribute it and/or --- modify it under the terms of the GNU General Public License --- as published by the Free Software Foundation; either version 2 --- of the License, or (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU General Public License for more details. --- --- You should have received a copy of the GNU General Public License --- along with this program; if not, write to the Free Software --- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. --- - - - -local indent = function(i) - return string.rep("\t", i); -end -local function basicSerialize (o) - if type(o) == "number" or type(o) == "boolean" then - return tostring(o); - else -- assume it is a string -- FIXME make sure it's a string. throw an error otherwise. - return (string.format("%q", tostring(o)):gsub("\\\n", "\\n")); - end -end -local function _simplesave (o, ind, t) - if type(o) == "number" then - table.insert(t, tostring(o)); - elseif type(o) == "string" then - table.insert(t, (string.format("%q", o):gsub("\\\n", "\\n"))); - elseif type(o) == "table" then - table.insert(t, "{\n"); - for k,v in pairs(o) do - table.insert(t, indent(ind)); - table.insert(t, "["); - table.insert(t, basicSerialize(k)); - table.insert(t, "] = "); - _simplesave(v, ind+1, t); - table.insert(t, ",\n"); - end - table.insert(t, indent(ind-1)); - table.insert(t, "}"); - elseif type(o) == "boolean" then - table.insert(t, (o and "true" or "false")); - else - error("cannot serialize a " .. type(o)) - end -end -local t_concat = table.concat; - -module "serialize" - -function serialize(o) - local t = {}; - _simplesave(o, 1, t); - return t_concat(t); -end - -return _M;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/util/serialization.lua Thu Dec 04 18:49:00 2008 +0000 @@ -0,0 +1,81 @@ +-- Prosody IM v0.1 +-- Copyright (C) 2008 Matthew Wild +-- Copyright (C) 2008 Waqas Hussain +-- +-- This program is free software; you can redistribute it and/or +-- modify it under the terms of the GNU General Public License +-- as published by the Free Software Foundation; either version 2 +-- of the License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +-- + +local string_rep = string.rep; +local type = type; +local tostring = tostring; +local t_insert = table.insert; +local t_concat = table.concat; +local error = error; +local pairs = pairs; + +module "serialization" + +local indent = function(i) + return string_rep("\t", i); +end +local function basicSerialize (o) + if type(o) == "number" or type(o) == "boolean" then + return tostring(o); + else -- assume it is a string -- FIXME make sure it's a string. throw an error otherwise. + return (("%q"):format(tostring(o)):gsub("\\\n", "\\n")); + end +end +local function _simplesave(o, ind, t, func) + if type(o) == "number" then + func(t, tostring(o)); + elseif type(o) == "string" then + func(t, (("%q"):format(o):gsub("\\\n", "\\n"))); + elseif type(o) == "table" then + func(t, "{\n"); + for k,v in pairs(o) do + func(t, indent(ind)); + func(t, "["); + func(t, basicSerialize(k)); + func(t, "] = "); + if ind == 0 then + _simplesave(v, 0, t, func); + else + _simplesave(v, ind+1, t, func); + end + func(t, ",\n"); + end + func(t, indent(ind-1)); + func(t, "}"); + elseif type(o) == "boolean" then + func(t, (o and "true" or "false")); + else + error("cannot serialize a " .. type(o)) + end +end + +function append(t, o) + _simplesave(o, 1, t, t.write or t_insert); + return t; +end + +function serialize(o) + return t_concat(append({}, o)); +end + +function deserialize(str) + error("Not implemented"); +end + +return _M;