# HG changeset patch # User Matthew Wild # Date 1292901760 0 # Node ID c2dc7f7eed943b5abfd1c1e22fe1471ffd7dc379 # Parent 4d8081c35f01b3fdb7c1f2b989adc683216c055a util.pubsub: Modify new() to take a config, and add a default config via a metatable diff -r 4d8081c35f01 -r c2dc7f7eed94 util/pubsub.lua --- a/util/pubsub.lua Tue Dec 21 03:18:17 2010 +0000 +++ b/util/pubsub.lua Tue Dec 21 03:22:40 2010 +0000 @@ -3,8 +3,19 @@ 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)