tables working quite well, I am happy :)

This commit is contained in:
Enrique García Cota 2011-04-24 00:16:36 +02:00
parent b51be52bf0
commit 4e3eb102ed
2 changed files with 20 additions and 14 deletions

View File

@ -85,24 +85,23 @@ function Inspector:tabify(level)
end end
function Inspector:addTable(t, level) function Inspector:addTable(t, level)
local length, needsComma = #t, false
self:puts('{') self:puts('{')
local length = #t
local needsComma = false
for i=1, length do for i=1, length do
if i > 1 then if needsComma then self:puts(', ') end
self:puts(', ')
needsComma = true needsComma = true
end
self:addValue(t[i], level + 1) self:addValue(t[i], level + 1)
end end
local dictKeys, k, v = getDictionaryKeys(t) local dictKeys = getDictionaryKeys(t)
for i=1, #dictKeys do for _,k in ipairs(dictKeys) do
if needsComma then self:puts(',') end if needsComma then self:puts(',') end
needsComma = true needsComma = true
k = dictKeys[i] self:tabify(level+1)
self:tabify(level+1):addKey(k, level + 1):puts(' = '):addValue(t[k], level + 1) self:addKey(k, level + 1)
self:puts(' = ')
self:addValue(t[k], level + 1)
end end
if #dictKeys > 0 then self:tabify(level) end if #dictKeys > 0 then self:tabify(level) end

View File

@ -46,7 +46,6 @@ context( 'inspect', function()
context('tables', function() context('tables', function()
test('Should work with simple array-like tables', function() test('Should work with simple array-like tables', function()
assert_equal(inspect({1,2,3}), "{1, 2, 3}" ) assert_equal(inspect({1,2,3}), "{1, 2, 3}" )
end) end)
@ -60,14 +59,22 @@ context( 'inspect', function()
end) end)
test('Should work with nested dictionary tables', function() test('Should work with nested dictionary tables', function()
nestedDict = [[{ assert_equal(inspect( {d=3, b={c=2}, a=1} ), [[{
a = 1, a = 1,
b = { b = {
c = 2 c = 2
}, },
d = 3 d = 3
}]] }]])
assert_equal(inspect( {a=1, b={c=2}, d=3} ), nestedDict) end)
test('Should work with hybrid tables', function()
assert_equal(inspect({ 'a', {b = 1}, 2, c = 3, ['ahoy you'] = 4 }), [[{"a", {
b = 1
}, 2,
["ahoy you"] = 4,
c = 3
}]])
end) end)
end) end)