Module:Road data/parser/hooks explained

local p =

local parserModuleName = "Module:Road data/parser" -- SANDBOX REFERENCE

function p.split(parameters, args) local route = tonumber(string.match(args.route, "%d+")) or 0 if route < parameters.split then return parameters.below else return parameters.above endend

function p.splitlen(parameters, args) local route = args.route if #route < parameters.split then return parameters.below else return parameters.above endend

function p.between(parameters, args) local lower = parameters.lower local upper = parameters.upper local route = tonumber(string.match(args.route, "%d+")) or 0 if route < lower or route >= upper then return parameters.no else return parameters.yes endend

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.defaultend

function p.padroute(parameters, args) local route = args.route local paddedLength = parameters.paddedLength args.paddedRoute = string.format("%0" .. tostring(paddedLength) .. "d", route) return parameters.defaultend

function p.lowercase(parameters, args) local route = args.route args.lowercase = string.lower(route) return parameters.defaultend

--For the first element (pattern, action) in .actions such thatargs[.base] begins with pattern, return action.If no such element exists, return .default (nil if unspecified).function p.beginswith(parameters, args) local baseParam = parameters.base local actions = parameters.actions local arg = args[baseParam] for pattern,action in pairs(actions) do if mw.ustring.sub(arg, 1, mw.ustring.len(pattern))

pattern then return action end end return parameters.defaultend

--function p.match(parameters, args) local parserModule = require(parserModuleName) local parser = parserModule.parser

local entry = parameters.entry local path = parameters.path local kind = parameters.kind local actions = parameters.actions local value = parser(args, entry, path, kind) for pattern,action in pairs(actions) do if mw.ustring.match(value, pattern) then return action end end return parameters.defaultend

function p.iso3166Sub(parameters, args) local country = args.country local subParam = parameters.sub local subCode = args[subParam]

local iso3166Module = require("Module:ISO 3166") args.iso3166Sub = iso3166Module.luaname return parameters.defaultend

function p.pagename(parameters, args) local pagename = mw.title.getCurrentTitle.text local article = parameters.article if article

pagename then return parameters.iftrue else return parameters.default or endend

return p