changeset 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 a63d1129c0d8
files LibModuleDBShare-1.0/LibModuleDBShare-1.0.lua
diffstat 1 files changed, 15 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/LibModuleDBShare-1.0/LibModuleDBShare-1.0.lua	Mon Mar 18 00:48:54 2013 -0400
+++ b/LibModuleDBShare-1.0/LibModuleDBShare-1.0.lua	Mon Mar 18 15:29:26 2013 -0400
@@ -41,13 +41,15 @@
 	elseif type(groupDescription) ~= "string" then
 		error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'groupDescription' must be a string.", 2);
 	elseif type(LibModuleDBShare.groups[groupName]) ~= "nil" then
-		error("LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): group '"..groupName.."' already exists.", 2);
+		error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): group '"..groupName.."' already exists.", 2);
 	elseif type(initialDB) ~= "table" or not AceDB.db_registry[initialDB] then
-		error("LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'initalDB' must be an AceDB-3.0 database.", 2);
+		error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'initialDB' must be an AceDB-3.0 database.", 2);
+	elseif initialDB.parent then
+		error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'initialDB' must not be a namespace.", 2)
 	elseif type(usesDualSpec) ~= "boolean" and type(usesDualSpec) ~= "nil" then
-		error("LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'usesDualSpec' must be a boolean or nil.", 2);
+		error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'usesDualSpec' must be a boolean or nil.", 2);
 	elseif usesDualSpec and not LibDualSpec then
-		error("LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'usesDualSpec' cannot be true without LibDualSpec-1.0 installed.", 2);
+		error("Usage: LibModuleDBShare:NewGroup(groupName, groupDescription, initialDB, usesDualSpec): 'usesDualSpec' cannot be true without LibDualSpec-1.0 installed.", 2);
 	end
 	-- create group
 	local group = {}
@@ -133,9 +135,16 @@
 function DBGroup:AddDB(newDB)
 	-- verify parameters
 	if type(newDB) ~= "table" or not AceDB.db_registry[newDB] then
-		error("Usage: DBGroup:AddDB(newDB): 'newDB' must be a table.", 2);
+		error("Usage: DBGroup:AddDB(newDB): 'newDB' must be an AceDB-3.0 database.", 2);
+	elseif newDB.parent then
+		error("Usage: DBGroup:AddDB(newDB): 'newDB' must not be a namespace.", 2)
 	elseif type(self.members[newDB]) ~= "nil" then
-		error("DBGroup:AddDB(newDB): 'newDB' is already a member of DBGroup.", 2);
+		error("Usage: DBGroup:AddDB(newDB): 'newDB' is already a member of DBGroup.", 2);
+	end
+	for groupName, group in pairs(LibModuleDBShare.groups) do
+		if group.members[newDB] ~= nil then
+			error("Usage: DBGroup:AddDB(newDB): 'newDB' is already a member of group '"..groupName.."'.", 2);
+		end
 	end
 	-- record current profile
 	local syncProfile = self.syncDB:GetCurrentProfile();