Module:LuaCall: Difference between revisions
From Test Wiki
Content deleted Content added
p.get() fix bug |
p.get() fix bug |
||
| Line 148: | Line 148: | ||
--]] |
--]] |
||
function p.get(frame) |
function p.get(frame) |
||
local argsIpairs1, argsIpairs2, argsIpairs3 |
|||
-- #frame.args always return 0, regardless of number of unnamed |
-- #frame.args always return 0, regardless of number of unnamed |
||
-- template parameters, so use length() instead |
-- template parameters, so use length() instead |
||
| Line 155: | Line 154: | ||
-- always treat it as string, |
-- always treat it as string, |
||
-- so 'obj.1' will mean obj['1'] rather obj[1] |
-- so 'obj.1' will mean obj['1'] rather obj[1] |
||
local G = _G; for _ in mw.text.gsplit( |
|||
mw.text.trim(frame.args[1], '%s'), '%s*%.%s*' |
mw.text.trim(frame.args[1], '%s'), '%s*%.%s*' |
||
) |
) do |
||
G = G[_] |
|||
| ⚫ | |||
| ⚫ | |||
else |
else |
||
local args = {} |
local args = {} |
||
| Line 163: | Line 165: | ||
table.insert(args, tonumber(v) or v:gsub("^\\", "", 1)) |
table.insert(args, tonumber(v) or v:gsub("^\\", "", 1)) |
||
end |
end |
||
local G = _G; for _, v in ipairs(args) do |
|||
G = G[v] |
|||
| ⚫ | |||
end |
|||
local G = _G; for _ in argsIpairs1, argsIpairs2, argsIpairs3 do |
|||
return G |
|||
end |
end |
||
| ⚫ | |||
end |
end |
||