Module:LuaCall: Difference between revisions
From Test Wiki
Content deleted Content added
use vararg for pairs() result |
p.call() use callWithTonumberOrStringOnPairs() |
||
| Line 46: | Line 46: | ||
end |
end |
||
local function tonumberOrStringOnPairs(...) |
--local function tonumberOrStringOnPairs(...) |
||
-- local args = {} |
|||
-- for _, v in ... do |
|||
-- --table.insert(args, tonumber(v) or v:gsub("^\\", "", 1)) |
|||
-- table.insert(args, tonumberOrString(v)) |
|||
-- end |
|||
-- return args |
|||
--end |
|||
local function callWithTonumberOrStringOnPairs(f, ...) |
|||
local args = {} |
local args = {} |
||
for _, v in ... do |
for _, v in ... do |
||
| Line 52: | Line 61: | ||
table.insert(args, tonumberOrString(v)) |
table.insert(args, tonumberOrString(v)) |
||
end |
end |
||
return args |
return (f(unpack(args))) |
||
end |
end |
||
| Line 137: | Line 146: | ||
--]] |
--]] |
||
function p.call(frame) |
function p.call(frame) |
||
--local f = mw.text.trim(frame.args[1], '%s') |
----local f = mw.text.trim(frame.args[1], '%s') |
||
--local args = {} |
----local args = {} |
||
--for _, v in ipairsAtOffset(frame.args, 1) do |
----for _, v in ipairsAtOffset(frame.args, 1) do |
||
-- --table.insert(args, tonumber(v) or v:gsub("^\\", "", 1)) |
---- --table.insert(args, tonumber(v) or v:gsub("^\\", "", 1)) |
||
-- table.insert(args, tonumberOrString(v)) |
---- table.insert(args, tonumberOrString(v)) |
||
--end |
----end |
||
local args = tonumberOrStringOnPairs(ipairsAtOffset(frame.args, 1)) |
--local args = tonumberOrStringOnPairs(ipairsAtOffset(frame.args, 1)) |
||
--local G = _G |
----local G = _G |
||
--for _ in mw.text.gsplit( |
----for _ in mw.text.gsplit( |
||
-- mw.text.trim(frame.args[1], '%s'), '%s*%.%s*' |
---- mw.text.trim(frame.args[1], '%s'), '%s*%.%s*' |
||
--) do |
----) do |
||
-- G = G[_] |
---- G = G[_] |
||
--end |
----end |
||
return (get(frame.args[1])(unpack(args))) |
--return (get(frame.args[1])(unpack(args))) |
||
return callWithTonumberOrStringOnPairs(get(frame.args[1]), |
|||
ipairsAtOffset(frame.args, 1) |
|||
) |
|||
end |
end |
||