Module:ProcessArgs: Difference between revisions

From Modded Wiki
Jump to navigation Jump to search
Merge is supposed to overwrite the direct args with the parent args.
removed redundant check per suggestion on talk page
Line 27: Line 27:
for k, v in pairs( origArgs ) do
for k, v in pairs( origArgs ) do
v = mw.text.trim( tostring( v ) )
v = mw.text.trim( tostring( v ) )
if not norm or norm and v ~= '' then
if not norm or v ~= '' then
args[k] = v
args[k] = v
end
end
Line 34: Line 34:
for k, v in pairs( parentArgs ) do
for k, v in pairs( parentArgs ) do
v = mw.text.trim( v )
v = mw.text.trim( v )
if not norm or norm and v ~= '' then
if not norm or v ~= '' then
args[k] = v
args[k] = v
end
end

Revision as of 18:59, 4 April 2020

Documentation for this module may be created at Module:ProcessArgs/doc

local p = {}
function p.norm( origArgs )
	if type( origArgs ) ~= 'table' then
		origArgs = mw.getCurrentFrame():getParent().args
	end
	local args = {}
	
	for k, v in pairs( origArgs ) do
		v = mw.text.trim( tostring( v ) )
		if v ~= '' then
			args[k] = v
		end
	end
	
	return args
end

function p.merge( origArgs, parentArgs, norm )
	if type( origArgs ) ~= 'table' then
		norm = origArgs
		local f = mw.getCurrentFrame()
		origArgs = f.args
		parentArgs = f:getParent().args
	end
	local args = {}
	
	for k, v in pairs( origArgs ) do
		v = mw.text.trim( tostring( v ) )
		if not norm or v ~= '' then
			args[k] = v
		end
	end
	
	for k, v in pairs( parentArgs ) do
		v = mw.text.trim( v )
		if not norm or v ~= '' then
			args[k] = v
		end
	end
	
	return args
end
return p