mirror of
https://github.com/bakpakin/tiny-ecs.git
synced 2024-11-17 04:44:23 +00:00
Fix string filter generator.
This commit is contained in:
parent
3b4bd9920b
commit
27f881444a
@ -111,6 +111,28 @@ describe('tiny-ecs:', function()
|
||||
|
||||
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)
|
||||
|
||||
describe('World:', function()
|
||||
|
9
tiny.lua
9
tiny.lua
@ -92,6 +92,7 @@ local filterJoin
|
||||
local filterBuildString
|
||||
|
||||
do
|
||||
|
||||
local loadstring = loadstring or load
|
||||
local function getchr(c)
|
||||
return "\\" .. c:byte()
|
||||
@ -145,12 +146,12 @@ do
|
||||
return table.concat(accum)
|
||||
end
|
||||
|
||||
print(buildPart'a|b|(c&d)')
|
||||
|
||||
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)
|
||||
if err then error(err) end
|
||||
if err then
|
||||
error(err)
|
||||
end
|
||||
return loader()
|
||||
end
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user