Mercurial > wow > libmoduledbshare-1-0
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; |
