comparison LibModuleDBShare-1.0/LibModuleDBShare-1.0.lua @ 31:ff0e10fd2a5f v0.1 beta

Tested parameter checks.
author Andrew Knoll <andrewtknoll@gmail.com>
date Mon, 18 Mar 2013 15:29:26 -0400
parents 5c7143d32287
children 3f329c676eac
comparison
equal deleted inserted replaced
30:5c7143d32287 31:ff0e10fd2a5f
39 if type(groupName) ~= "string" then 39 if type(groupName) ~= "string" then
40 error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'groupName' must be a string.", 2); 40 error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'groupName' must be a string.", 2);
41 elseif type(groupDescription) ~= "string" then 41 elseif type(groupDescription) ~= "string" then
42 error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'groupDescription' must be a string.", 2); 42 error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'groupDescription' must be a string.", 2);
43 elseif type(LibModuleDBShare.groups[groupName]) ~= "nil" then 43 elseif type(LibModuleDBShare.groups[groupName]) ~= "nil" then
44 error("LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): group '"..groupName.."' already exists.", 2); 44 error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): group '"..groupName.."' already exists.", 2);
45 elseif type(initialDB) ~= "table" or not AceDB.db_registry[initialDB] then 45 elseif type(initialDB) ~= "table" or not AceDB.db_registry[initialDB] then
46 error("LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'initalDB' must be an AceDB-3.0 database.", 2); 46 error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'initialDB' must be an AceDB-3.0 database.", 2);
47 elseif initialDB.parent then
48 error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'initialDB' must not be a namespace.", 2)
47 elseif type(usesDualSpec) ~= "boolean" and type(usesDualSpec) ~= "nil" then 49 elseif type(usesDualSpec) ~= "boolean" and type(usesDualSpec) ~= "nil" then
48 error("LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'usesDualSpec' must be a boolean or nil.", 2); 50 error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'usesDualSpec' must be a boolean or nil.", 2);
49 elseif usesDualSpec and not LibDualSpec then 51 elseif usesDualSpec and not LibDualSpec then
50 error("LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'usesDualSpec' cannot be true without LibDualSpec-1.0 installed.", 2); 52 error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'usesDualSpec' cannot be true without LibDualSpec-1.0 installed.", 2);
51 end 53 end
52 -- create group 54 -- create group
53 local group = {} 55 local group = {}
54 group.name = groupName; 56 group.name = groupName;
55 group.members = {}; 57 group.members = {};
131 -- @usage 133 -- @usage
132 -- myAddonDBGroup:AddDB(MyAddon.db) 134 -- myAddonDBGroup:AddDB(MyAddon.db)
133 function DBGroup:AddDB(newDB) 135 function DBGroup:AddDB(newDB)
134 -- verify parameters 136 -- verify parameters
135 if type(newDB) ~= "table" or not AceDB.db_registry[newDB] then 137 if type(newDB) ~= "table" or not AceDB.db_registry[newDB] then
136 error("Usage: DBGroup:AddDB(newDB): 'newDB' must be a table.", 2); 138 error("Usage: DBGroup:AddDB(newDB): 'newDB' must be an AceDB-3.0 database.", 2);
139 elseif newDB.parent then
140 error("Usage: DBGroup:AddDB(newDB): 'newDB' must not be a namespace.", 2)
137 elseif type(self.members[newDB]) ~= "nil" then 141 elseif type(self.members[newDB]) ~= "nil" then
138 error("DBGroup:AddDB(newDB): 'newDB' is already a member of DBGroup.", 2); 142 error("Usage: DBGroup:AddDB(newDB): 'newDB' is already a member of DBGroup.", 2);
143 end
144 for groupName, group in pairs(LibModuleDBShare.groups) do
145 if group.members[newDB] ~= nil then
146 error("Usage: DBGroup:AddDB(newDB): 'newDB' is already a member of group '"..groupName.."'.", 2);
147 end
139 end 148 end
140 -- record current profile 149 -- record current profile
141 local syncProfile = self.syncDB:GetCurrentProfile(); 150 local syncProfile = self.syncDB:GetCurrentProfile();
142 -- add new profiles to syncDB 151 -- add new profiles to syncDB
143 self.squelchCallbacks = true; 152 self.squelchCallbacks = true;