Module:GetParameters explained

local p =

--Helper function that populates the argument list given that user may need to use a mix ofnamed and unnamed parameters. This is relevant because named parameters are notidentical to unnamed parameters due to string trimming, and when dealing with stringswe sometimes want to either preserve or remove that whitespace depending on the application.function p.getParameters(frame_args, arg_list) local new_args = ; local index = 1; local value; for i,arg in ipairs(arg_list) do value = frame_args[arg] if value

nil then value = frame_args[index]; index = index + 1; end new_args[arg] = value; end return new_args;end

--Helper Function to interpret boolean stringsfunction p.getBoolean(boolean_str) local boolean_value; if type(boolean_str)

'string' then boolean_str = boolean_str:lower; if boolean_str

'false' or boolean_str

'no' or boolean_str

'0' or boolean_str

then boolean_value = false; else boolean_value = true; end elseif type(boolean_str)

'boolean' then boolean_value = boolean_str; else error('No boolean value found'); end return boolean_valueend

function p.defined(frame) local arg = mw.text.trim(frame.args[1]) --if arg

tostring(tonumber(arg)) then -- undesired result for '-0' -- arg = tonumber(arg) --end --if mw.ustring.find(arg, '^%s*-?[1-9][0-9]*%s*$') ~= nil or arg

'0' then -- arg = tonumber(arg) --end if mw.ustring.find(arg, '^-?[1-9][0-9]*$') ~= nil then arg = tonumber(arg) elseif arg

'0' then arg = 0 end return frame:getParent.args[arg] ~= nilend

return p