util.pubsub: Modify new() to take a config, and add a default config via a metatable
authorMatthew Wild <mwild1@gmail.com>
Tue, 21 Dec 2010 03:22:40 +0000 (03:22 +0000)
committerMatthew Wild <mwild1@gmail.com>
Tue, 21 Dec 2010 03:22:40 +0000 (03:22 +0000)
util/pubsub.lua

index 811f4a154c3ddbb25ef73183fc9020efcc9cf48e..f667295e36599a919ca79d6b9648b18f9b89e9c7 100644 (file)
@@ -3,8 +3,19 @@ module("pubsub", package.seeall);
 local service = {};
 local service_mt = { __index = service };
 
-function new(cb)
-       return setmetatable({ cb = cb or {}, nodes = {} }, service_mt);
+local default_config = {
+       broadcaster = function () end;
+       get_affiliation = function () end;
+       capabilities = {};
+};
+
+function new(config)
+       config = config or {};
+       return setmetatable({
+               config = setmetatable(config, { __index = default_config });
+               affiliations = {};
+               nodes = {};
+       }, service_mt);
 end
 
 function service:add_subscription(node, actor, jid)