Difference between revisions of "Module:ArbCaseAlias"
Jump to navigation
Jump to search
blackwiki>Isaacl (Add processing logic) |
blackwiki>Isaacl (change loadData to require) |
||
| Line 1: | Line 1: | ||
local me = { } | local me = { } | ||
| − | local config = | + | -- mw.loadData doesn't support loading data that has function type, so use require |
| + | local config = require('Module:Sandbox/isaacl/ArbCaseAlias/data') | ||
function me.luaMain(args) | function me.luaMain(args) | ||
Revision as of 03:09, 20 February 2018
Documentation for this module may be created at Module:ArbCaseAlias/doc
local me = { }
-- mw.loadData doesn't support loading data that has function type, so use require
local config = require('Module:Sandbox/isaacl/ArbCaseAlias/data')
function me.luaMain(args)
local alias = args[1]
local aliasFor = { }
for format, normalizer in pairs(config.arbCaseAliasInfo.normalizeAlias) do
local normalizedAlias = normalizer(alias)
if (normalizedAlias ~= nil) then
aliasFor[format] = normalizedAlias
end
end -- loop over normalizers
local primaryCategory = config.arbCaseAliasInfo.extractPrimaryKey(alias)
if (primaryCategory == nil) then
return alias
end
if (config.arbCaseAliasInfo.caseInfoFor[primaryCategory] == nil) then
return alias
end
for caseName, caseInfo in pairs(config.arbCaseAliasInfo.caseInfoFor[primaryCategory]) do
for format, caseAlias in pairs(caseInfo) do
if (aliasFor[format] == caseAlias) then
return caseName
end
end -- loop over different case aliases
end -- loop over cases for given primary category
-- failed to find a match
return alias
end
function me.main(frame)
local args = require('Module:Arguments').getArgs(frame)
return me.luaMain(args) or ''
end
return me