Skip to content

Commit

Permalink
Updating ox.tbl
Browse files Browse the repository at this point in the history
  • Loading branch information
davidhollander committed Oct 16, 2011
1 parent 695d000 commit 7445356
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 7 deletions.
20 changes: 14 additions & 6 deletions ox/tbl.lua
Expand Up @@ -38,15 +38,23 @@ local dumptype
dumptype = {
table = function(out, t)
ti(out, '{')
local i,num = 0, true
for k,v in pairs(t) do
local fk, fv = dumptype[type(k)], dumptype[type(v)]
if fk and fv then
ti(out, '['); fk(out, k); ti(out, ']='); fv(out, v)
i=i+1
if k==i and num then
local fv = dumptype[type(v)]
if fv then fv(out, v); ti(out, ',')
else num=false end
else
local fk, fv = dumptype[type(k)], dumptype[type(v)]
if fk and fv then
ti(out, '['); fk(out, k); ti(out, ']='); fv(out, v)
end
ti(out, ',')
end
ti(out, ',')
end
ti(out, '}')
--out[mmax(#out,2)]='}'
if i>0 then out[#out]='}'
else ti(out, '}') end
end,
string = function(out, k) return ti(out, ('%q'):format(k)) end,
number = function(out, k) return ti(out, k) end,
Expand Down
9 changes: 8 additions & 1 deletion tests/tbl.lua
Expand Up @@ -9,7 +9,9 @@ local l2 = tbl.values(t)
assert(l2[1]+l2[2] == 8)

local t = {'helloworld',foo='bar',baz=5,[{foo='bar'}]={bar='baz'}}
local t2 = tbl.load(tbl.dump(t))
local str = tbl.dump(t)
print(str)
local t2 = tbl.load(str)

local n = 0
for k,v in pairs(t) do
Expand All @@ -26,4 +28,9 @@ assert(n==4)
assert(#{tbl.unpackn({},{},{})} == 0)
assert(#{tbl.unpackn({1,2},{3},{4,5,6,7})} == 7)

local str = tbl.dump {{},{},{}}
print(str)
local t = tbl.load(str)
assert(#t==3)

print 'pass'

0 comments on commit 7445356

Please sign in to comment.