Module:ArgsUtil
Jump to navigation
Jump to search
Documentation for this module may be created at Module:ArgsUtil/doc
local p = {}
--converts arguments passed without a name ({value} instead of {name = value})
--to the expected value while keeping the arguments that were named
function p.fix_unnamed_params(args, expected)
local i = 1
for arg, _ in ipairs(expected) do
if args[expected[arg]] == nil then
args[expected[arg]] = args[i]
i = i + 1
end
end
return args
end
--combines fix_unnamed_params and merge
function p.unnamed_merge(expected)
return p.fix_unnamed_params(p.merge(), expected)
end
--combines fix_unnamed_params and overwrite
function p.unnamed_overwrite(expected)
return p.fix_unnamed_params(p.overwrite(), expected)
end
--thanks river
function p.merge()
local f = mw.getCurrentFrame()
local origArgs = f.args
local parentArgs = f:getParent().args
local args = {}
for k, v in pairs(origArgs) do
v = mw.text.trim(tostring(v))
if v ~= '' then
args[k] = v
end
end
for k, v in pairs(parentArgs) do
v = mw.text.trim(v)
if v ~= '' then
args[k] = v
end
end
return args
end
--thanks river
function p.overwrite()
local f = mw.getCurrentFrame()
local origArgs = f.args
local parentArgs = f:getParent().args
local args = {}
for k, v in pairs(parentArgs) do
v = mw.text.trim(v)
args[k] = v
end
for k, v in pairs(origArgs) do
v = mw.text.trim(tostring(v))
args[k] = v
end
return args
end
return p