Module:MakeInvokeFunc

-- Based on work in Module:Documentation

return function(p)

return function(funcName)

return function (frame)

local args = require("Module:Arguments").getArgs(frame, {

valueFunc = function (key, value)

if type(value) == 'string' then

value = value:match('^%s*(.-)%s*$') -- Remove whitespace.

if key == 'heading' or value ~= '' then

return value

else

return nil

end

else

return value

end

end

})

return p[funcName](args)

end

end

end