mirror of
https://github.com/kikito/inspect.lua.git
synced 2024-12-15 14:34:21 +00:00
strings were a bit difficult
This commit is contained in:
parent
b8286f82dc
commit
87b3e1d82c
19
inspect.lua
19
inspect.lua
@ -7,6 +7,16 @@
|
||||
|
||||
-- public function
|
||||
|
||||
-- Apostrophizes the string if it has quotes, but not aphostrophes
|
||||
-- Otherwise, it returns regular a requilar quoted string
|
||||
local function smartQuote(str)
|
||||
if string.match( string.gsub(str,"[^'\"]",""), '^"+$' ) then
|
||||
return "'" .. str .. "'"
|
||||
end
|
||||
return string.format("%q", str )
|
||||
end
|
||||
|
||||
|
||||
local Buffer = {}
|
||||
|
||||
function Buffer:new()
|
||||
@ -26,7 +36,10 @@ end
|
||||
|
||||
function Buffer:addValue(v)
|
||||
local tv = type(v)
|
||||
if tv == 'table' then
|
||||
|
||||
if tv == 'string' then
|
||||
self:add(smartQuote(string.gsub( v, "\n", "\\n" )))
|
||||
elseif tv == 'table' then
|
||||
self:add('{')
|
||||
for i=1, #v do
|
||||
if i > 1 then self:add(', ') end
|
||||
@ -39,10 +52,6 @@ function Buffer:addValue(v)
|
||||
return self
|
||||
end
|
||||
|
||||
local function newBuffer()
|
||||
|
||||
end
|
||||
|
||||
local function inspect(t)
|
||||
return tostring(Buffer:new():addValue(t))
|
||||
end
|
||||
|
@ -8,6 +8,13 @@ context( 'inspect', function()
|
||||
assert_equal(inspect(-3.14), "-3.14")
|
||||
end)
|
||||
|
||||
test('Should work with strings', function()
|
||||
assert_equal(inspect("hello"), '"hello"')
|
||||
assert_equal(inspect('I have "quotes"'), "'I have \"quotes\"'")
|
||||
assert_equal(inspect("I have \"quotes\" and 'apostrophes'"), '"I have \\"quotes\\" and \'apostrophes\'"')
|
||||
assert_equal(inspect('I have \n new \n lines'), '"I have \\\\n new \\\\n lines"')
|
||||
end)
|
||||
|
||||
test('Should work with simple array-like tables', function()
|
||||
assert_equal(inspect({1,2,3}), "{1, 2, 3}" )
|
||||
end)
|
||||
|
Loading…
Reference in New Issue
Block a user