Title: Module:GetParameters - freem URL Source: https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters Markdown Content: _Documentation for this module may be created at [Module:GetParameters/doc](https://freemwiki.com/index.php?title=Module:GetParameters/doc&action=edit&redlink=1 "Module:GetParameters/doc (page does not exist)")_ [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-1)local p = {}[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-2)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-3)--[[[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-4)Helper function that populates the argument list given that user may need to use a mix of[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-5)named and unnamed parameters. This is relevant because named parameters are not[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-6)identical to unnamed parameters due to string trimming, and when dealing with strings[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-7)we sometimes want to either preserve or remove that whitespace depending on the application.[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-8)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-9)function p.getParameters( frame_args, arg_list )[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-10) local new_args = {};[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-11) local index = 1;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-12) local value;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-13) [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-14) for i,arg in ipairs( arg_list ) do[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-15) value = frame_args[arg][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-16) if value == nil then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-17) value = frame_args[index];[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-18) index = index + 1;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-19) end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-20) new_args[arg] = value;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-21) end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-22) [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-23) return new_args;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-24)end [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-25)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-26)--[[[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-27)Helper Function to interpret boolean strings[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-28)]][](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-29)function p.getBoolean( boolean_str )[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-30) local boolean_value;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-31) [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-32) if type( boolean_str ) == 'string' then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-33) boolean_str = boolean_str:lower();[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-34) if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0' [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-35) or boolean_str == '' then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-36) boolean_value = false;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-37) else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-38) boolean_value = true;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-39) end [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-40) elseif type( boolean_str ) == 'boolean' then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-41) boolean_value = boolean_str;[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-42) else[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-43) error( 'No boolean value found' );[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-44) end [](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-45) return boolean_value[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-46)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-47)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-48)function p.defined(frame)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-49)local arg = mw.text.trim(frame.args[1])[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-50)--if arg == tostring(tonumber(arg)) then -- undesired result for '-0'[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-51)-- arg = tonumber(arg)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-52)--end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-53)--if mw.ustring.find(arg, '^%s*-?[1-9][0-9]*%s*$') ~= nil or arg == '0' then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-54)-- arg = tonumber(arg)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-55)--end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-56)if mw.ustring.find(arg, '^-?[1-9][0-9]*$') ~= nil then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-57)arg = tonumber(arg)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-58)elseif arg == '0' then[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-59)arg = 0[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-60)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-61)return frame:getParent().args[arg] ~= nil[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-62)end[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-63)[](https://freemwiki.com/index.php?mobileaction=toggle_view_mobile&title=Module%3AGetParameters#L-64)return p