Mercurial > wow > breuesk
diff Utility.lua @ 44:8913e7d79cad
Refactoring some very simple items to a Utility file
author | John@Yosemite-PC |
---|---|
date | Thu, 15 Mar 2012 22:58:54 -0400 |
parents | |
children | 8856fc38cd41 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Utility.lua Thu Mar 15 22:58:54 2012 -0400 @@ -0,0 +1,59 @@ +local pairs=pairs +local type=type +local getmetatable=getmetatable +local setmetatable=setmetatable + +setfenv(1,bsk) + +-- These two functions properly format the call to AceConsole:Print(), which +-- needs a full object. Calling "Print" will call the mixed-in console functions +-- but without a self parameter because of the namespacing. I would disembed +-- console, except that it has handy OnDisable behavior to disable chat +-- commands. +function print(...) + bsk:Print(...) +end + +function printf(...) + bsk:Printf(...) +end + +function tcopy(to, from) + for k,v in pairs(from) do + if(type(v)=="table") then + to[k] = {} + tcopy(to[k], v); + else + to[k] = v; + end + end +end + +function shallowCopy(t) + local u = { } + for k, v in pairs(t) do u[k] = v end + return setmetatable(u, getmetatable(t)) +end + +function PrintTable(table, depth) + depth = depth or "" + if not table then return end + if #depth > 3*5 then print(depth.."Recursion too deep - stopping"); return end + for i,v in pairs(table) do + if( type(v) == "string" ) then + print(depth .. i .. " - " .. v) + elseif( type(v) == "number" ) then + print(depth .. i .. " - " .. tostring(v)) + elseif( type(v) == "table" ) then + print(depth .. i .." - ") + PrintTable(v,depth.." ") + elseif( type(v) == "boolean" ) then + print(depth .. i .. " - " .. tostring(v)) + elseif( type(v) == "function" ) then + print(depth .. "function " .. i .. "()") + else + print(depth .. i .. " - not sure how to print type: " .. type(v) ) + end + end +end +