Module:Arguments: Difference between revisions
From Mariopedia, a wiki on Mario, Yoshi, Wario, Donkey Kong, Super Smash Bros., and more!
Jump to navigationJump to search
Content deleted Content added
create argument-processing module |
return a table rather than a function, improve the comments |
||
Line 1: | Line 1: | ||
-- This module provides easy processing of arguments passed to Scribunto from #invoke. |
-- This module provides easy processing of arguments passed to Scribunto from #invoke. |
||
-- It is intended for use by other Lua modules, and should not be called from #invoke directly. |
|||
local arguments = {} |
|||
⚫ | |||
⚫ | |||
options = type(options) == 'table' and options or {} |
options = type(options) == 'table' and options or {} |
||
-- Get the arguments from the frame object if available. If the frame object is not available, we are being called |
|||
-- from another Lua module or from the debug console, so assume arguments are passed directly in. |
|||
local fargs, pargs |
local fargs, pargs |
||
if frame == mw.getCurrentFrame() then |
if frame == mw.getCurrentFrame() then |
||
Line 31: | Line 36: | ||
end |
end |
||
-- Use a user-generated functions to tidy the values if specified. |
|||
local valueFunc = options.valueFunc |
local valueFunc = options.valueFunc |
||
if valueFunc then |
if valueFunc then |
||
Line 54: | Line 60: | ||
end |
end |
||
-- Set the order of precedence of frame args and parent args. |
|||
local firstArgs, secondArgs = fargs, pargs |
local firstArgs, secondArgs = fargs, pargs |
||
if options.parentFirst then |
if options.parentFirst then |
||
Line 59: | Line 66: | ||
end |
end |
||
-- Define metatable behaviour. |
|||
metatable.__index = function (t, key) |
metatable.__index = function (t, key) |
||
local val = metaArgs[key] |
local val = metaArgs[key] |
||
Line 99: | Line 107: | ||
end |
end |
||
return |
return arguments |