util.pubsub: For clarity, split config tables from their metatables
authorMatthew Wild <mwild1@gmail.com>
Thu, 01 Feb 2018 15:09:04 +0000
changeset 8503 9bf00d0734c8
parent 8502 549361c68f5a
child 8504 8d9e2c2095dd
util.pubsub: For clarity, split config tables from their metatables
util/pubsub.lua
--- a/util/pubsub.lua	Sat Dec 30 22:57:55 2017 +0100
+++ b/util/pubsub.lua	Thu Feb 01 15:09:04 2018 +0000
@@ -4,22 +4,25 @@
 local service = {};
 local service_mt = { __index = service };
 
-local default_config = { __index = {
+local default_config = {
 	itemstore = function (config, _) return cache.new(config["max_items"]) end;
 	broadcaster = function () end;
 	get_affiliation = function () end;
 	capabilities = {};
-} };
-local default_node_config = { __index = {
+};
+local default_config_mt = { __index = default_config };
+
+local default_node_config = {
 	["persist_items"] = false;
 	["max_items"] = 20;
-} };
+};
+local default_node_config_mt = { __index = default_node_config };
 
 local function new(config)
 	config = config or {};
 	return setmetatable({
-		config = setmetatable(config, default_config);
-		node_defaults = setmetatable(config.node_defaults or {}, default_node_config);
+		config = setmetatable(config, default_config_mt);
+		node_defaults = setmetatable(config.node_defaults or {}, default_node_config_mt);
 		affiliations = {};
 		subscriptions = {};
 		nodes = {};