view LibModuleDBShare-1.0/LibModuleDBShare-1.0.lua @ 12:5947b9721b9c master

began implementation of NewGroup implemented GetGroup
author Thnan < >
date Sun, 10 Mar 2013 03:34:49 -0400
parents 35159f132552
children 1dd07f05ecac
line wrap: on
line source
--- **LibModuleDBShare-1.0**\\ 
-- A description will eventually be here.
--
-- @usage
-- Also coming soon.
-- @class file
-- @name LibModuleDBShare-1.0.lua
local MAJOR, MINOR = "LibModuleDBShare-1.0", 1
local LibModuleDBShare, oldminor = LibStub:NewLibrary(MAJOR, MINOR)

if not LibModuleDBShare then return end -- No upgrade needed

local AceDB = LibStub("AceDB-3.0");

LibModuleDBShare.groups = LibModuleDBShare.groups or {};

local DBGroup = {};

--- Creates a new DB group.
-- @param groupName The name of the new DB group.
-- @param usesDualSpec True if this group should use LibDualSpec, false otherwise. (NYI)
-- @param initialProfile The name of the profile to start with.
-- @usage
-- local myAddonDBGroup = LibStub("LibModuleDBShare-1.0"):NewGroup("MyAddonGroupName", true)
-- @return the new DB group object
function LibModuleDBShare:NewGroup(groupName, usesDualSpec, initialProfile)
	-- param checks go here
	local group = {}
	group.name = groupName;
	group.syncDBTable = {};
	group.syncDB = AceDB:New(group.syncDBTable, nil, true);
	for k, v in pairs(DBGroup) do
		group[k] = v;
	end
	return group;
end

--- Retrieves an existing DB group.
-- @param groupName The name of the DB group to retrieve.
-- @usage
-- local myAddonDBGroup = LibStub("LibModuleDBShare-1.0"):GetGroup("MyAddonGroupName")
-- @return the DB group object, or nil if not found
function LibModuleDBShare:GetGroup(groupName)
	return LibModuleDBShare.groups[groupName];
end

--- Adds a database to the group.
-- @param db The name of the new DB group.
-- @usage
-- myAddonDBGroup:AddDB(MyAddon.db)
function DBGroup:AddDB(db)

end