Module:Road data/parser/hooks
Appearance
Documentation for this module may be created at Module:Road data/parser/hooks/doc
local p = {}
function p.split(parameters, args)
local route = tonumber(args.route) or 0
if route < parameters.split then
return parameters.below
else
return parameters.above
end
end
function p.splitlen(parameters, args)
local route = args.route
if #route < parameters.split then
return parameters.below
else
return parameters.above
end
end
function p.between(parameters, args)
local lower = parameters.lower
local upper = parameters.upper
local route = tonumber(args.route) or 0
if route < lower or route >= upper then
return parameters.no
else
return parameters.yes
end
end
function p.mask(parameters, args)
local baseParam = parameters.base
local maskedParam = parameters.masked
local maskModule = "Module:" .. parameters.mask
local mask = mw.loadData(maskModule)
args[maskedParam] = mask[args[baseParam]]
return parameters.default
end
function p.padroute(parameters, args)
local route = args.route
local paddedLength = parameters.paddedLength
args.paddedRoute = string.format("%0" .. tostring(paddedLength) .. "d", route)
return parameters.default
end
function p.lowercase(parameters, args)
local route = args.route
args.lowercase = string.lower(route)
return parameters.default
end
function p.startswith(parameters, args)
local baseParam = parameters.base
local patterns = parameters.startPatterns or parameters.actions -- Compatibility
local arg = args[baseParam]
for pattern,result in pairs(patterns) do
if mw.ustring.sub(arg, 1, mw.ustring.len(pattern)) == pattern then
return result
end
end
return parameters.default
end
p.beginswith = p.startswith -- Compatibility
return p