Module:Arguments: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
(allow using both the frame and parent frame arguments with the wrappers option if specifically requested, per protected edit request by User:Jackmcbarn) |
(fix bug where explicitly deleted args were still appearing when iterated over with pairs or ipairs - code courtesy of User:Jackmcbarn) |
||
Line 170: | Line 170: | ||
-- into one table using the specified iterator. If a value is already |
-- into one table using the specified iterator. If a value is already |
||
-- present it is not overwritten; tables listed earlier have precedence. |
-- present it is not overwritten; tables listed earlier have precedence. |
||
-- We are also memoizing nil values, |
-- We are also memoizing nil values, which can be overwritten if they |
||
-- |
-- are 's' (soft). |
||
--]] |
--]] |
||
for _, t in ipairs(tables) do |
for _, t in ipairs(tables) do |
||
for key, val in iterator(t) do |
for key, val in iterator(t) do |
||
if metaArgs[key] == nil then |
if metaArgs[key] == nil and nilArgs[key] ~= 'h' then |
||
local tidiedVal = tidyVal(key, val) |
local tidiedVal = tidyVal(key, val) |
||
if tidiedVal == nil then |
if tidiedVal == nil then |
||
nilArgs[key] = |
nilArgs[key] = 's' |
||
else |
else |
||
metaArgs[key] = tidiedVal |
metaArgs[key] = tidiedVal |
||
Line 219: | Line 219: | ||
for _, argTable in ipairs(argTables) do |
for _, argTable in ipairs(argTables) do |
||
local argTableVal = tidyVal(key, argTable[key]) |
local argTableVal = tidyVal(key, argTable[key]) |
||
if argTableVal |
if argTableVal ~= nil then |
||
⚫ | |||
else |
|||
metaArgs[key] = argTableVal |
metaArgs[key] = argTableVal |
||
return argTableVal |
return argTableVal |
||
end |
end |
||
end |
end |
||
⚫ | |||
return nil |
return nil |
||
end |
end |
||
Line 255: | Line 254: | ||
--]] |
--]] |
||
metaArgs[key] = nil |
metaArgs[key] = nil |
||
nilArgs[key] = |
nilArgs[key] = 'h' |
||
else |
else |
||
metaArgs[key] = val |
metaArgs[key] = val |