in scripts/lua/lib/redis.lua [763:796]
function _M.optimizeLookup(red, tenant, resourceKey, pathStr)
local startingString = utils.concatStrings({'fastmap:', tenant})
if get(red, startingString) == nil then
set(red, startingString, '')
end
local path = {}
local key = {}
for p in string.gmatch(pathStr, '[^/]*') do
if p ~= '' then
table.insert(path, p)
end
end
for r in string.gmatch(resourceKey:gsub('[^:]*:[^:]*:', ''), '[^/]*') do
if r ~= '' then
table.insert(key, r)
end
end
for i = 1, table.getn(path) do
if path[i] == key[i] then
startingString = utils.concatStrings({startingString, '/', key[i]})
if (exists(red, startingString)) == 0 then
set(red, startingString, '')
end
else
startingString = utils.concatStrings({startingString, '/.*'})
if (exists(red,startingString) == 0) then
set(red, startingString, '')
end
end
end
set(red, startingString, resourceKey)
end