mirror of
https://github.com/bakpakin/tiny-ecs.git
synced 2026-07-21 23:56:50 -06:00
Fix string filter generator.
This commit is contained in:
@@ -111,6 +111,28 @@ describe('tiny-ecs:', function()
|
|||||||
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it("Can use string filters", function()
|
||||||
|
|
||||||
|
local f = tiny.filter('a|b|c')
|
||||||
|
|
||||||
|
assert.truthy(f(nil, {
|
||||||
|
a = true, b = true, c = true
|
||||||
|
}))
|
||||||
|
assert.truthy(f(nil, {
|
||||||
|
a = true
|
||||||
|
}))
|
||||||
|
assert.truthy(f(nil, {
|
||||||
|
b = true
|
||||||
|
}))
|
||||||
|
assert.truthy(f(nil, {
|
||||||
|
c = true
|
||||||
|
}))
|
||||||
|
assert.falsy(f(nil, {
|
||||||
|
x = true, y = true, z = true
|
||||||
|
}))
|
||||||
|
|
||||||
|
end)
|
||||||
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
describe('World:', function()
|
describe('World:', function()
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ local filterJoin
|
|||||||
local filterBuildString
|
local filterBuildString
|
||||||
|
|
||||||
do
|
do
|
||||||
|
|
||||||
local loadstring = loadstring or load
|
local loadstring = loadstring or load
|
||||||
local function getchr(c)
|
local function getchr(c)
|
||||||
return "\\" .. c:byte()
|
return "\\" .. c:byte()
|
||||||
@@ -145,12 +146,12 @@ do
|
|||||||
return table.concat(accum)
|
return table.concat(accum)
|
||||||
end
|
end
|
||||||
|
|
||||||
print(buildPart'a|b|(c&d)')
|
|
||||||
|
|
||||||
function filterBuildString(str)
|
function filterBuildString(str)
|
||||||
local source = ('return function(_, e) return %s end end'):format(buildPart(str))
|
local source = ("return function(_, e) return %s end"):format(buildPart(str))
|
||||||
local loader, err = loadstring(source)
|
local loader, err = loadstring(source)
|
||||||
if err then error(err) end
|
if err then
|
||||||
|
error(err)
|
||||||
|
end
|
||||||
return loader()
|
return loader()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user