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
local argsIpairs
-- #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 155:
-- 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]
argsIpairs = mw.text.gsplit(
argsIpairs1, argsIpairs2, argsIpairs3 = mw.text.gsplit(
mw.text.trim(frame.args[1], '%s'), '%s*%.%s*'
mw.text.trim(frame.args[1], '%s'), '%s*%.%s*'
)
)
Line 163: Line 163:
table.insert(args, tonumber(v) or v:gsub("^\\", "", 1))
table.insert(args, tonumber(v) or v:gsub("^\\", "", 1))
end
end
argsIpairs = ipairs(args)
argsIpairs1, argsIpairs2, argsIpairs3 = ipairs(args)
end
local G = _G; for _ in argsIpairs1, argsIpairs2, argsIpairs3 do
G = G[_]
end
end
local G = _G; for _ in argsIpairs do G = G[_] end
return G
return G
end
end