core/actions.lua
author Matthew Wild <mwild1@gmail.com>
Wed, 25 Nov 2009 23:45:45 +0000
changeset 2222 81b4e738e4d3
parent 1522 569d58d21612
child 2923 b7049746bd29
permissions -rw-r--r--
util.serialization: Correctly serialize tables with 'false' as a key, fixes an issue with rosters not saving (thanks mathias, Tobias)

-- Prosody IM
-- Copyright (C) 2008-2009 Matthew Wild
-- Copyright (C) 2008-2009 Waqas Hussain
-- 
-- This project is MIT/X11 licensed. Please see the
-- COPYING file in the source package for more information.
--


local actions = {};

function register(path, t)
	local curr = actions;
	for comp in path:gmatch("([^/]+)/") do
		if curr[comp] == nil then
			curr[comp] = {};
		end
		curr = curr[comp];
		if type(curr) ~= "table" then
			return nil, "path-taken";
		end
	end
	curr[path:match("/([^/]+)$")] = t;
	return true;
end

return { actions = actions, register= register };