Module:Road data/parser/hooks

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

return p