Module:Module introspection: Difference between revisions

Ganaram inukshuk (talk | contribs)
mNo edit summary
Ganaram inukshuk (talk | contribs)
No edit summary
Line 128: Line 128:
-- Helper function
-- Helper function
-- Given the output of the above function, create a mediawiki table
-- Given the output of the above function, create a mediawiki table
function p.make_dependency_table(deps)
function p.make_dependency_table(module_deps)
local lines = {}
local lines = {}


Line 137: Line 137:
table.insert(lines, "! Functions used")
table.insert(lines, "! Functions used")


for var, info in pairs(deps) do
for var, info in pairs(module_deps) do
local funcs_text
local funcs_text
if #info.funcs == 0 then
if #info["funcs"] == 0 then
funcs_text = "''dependency not used''"
funcs_text = "''dependency not used''"
else
else
funcs_text = table.concat(info.funcs, "<br />")
funcs_text = table.concat(info["funcs"], "<br />")
end
end


table.insert(lines, "|-")
table.insert(lines, "|-")
table.insert(lines, "| " .. var)
table.insert(lines, "| " .. var)
table.insert(lines, "| [[" .. info.dep .. "]]")
table.insert(lines, "| [[" .. info["dep"] .. "]]")
table.insert(lines, "| " .. funcs_text)
table.insert(lines, "| " .. funcs_text)
end
end
Line 190: Line 190:
-- Lists module's own functions; requires module name to produce links to each
-- Lists module's own functions; requires module name to produce links to each
-- function.
-- function.
function p.make_function_table(module_name, module_functions, main_function)
function p.make_function_table(module_name, module_funcs, main_function)
-- Collapse table if it's larger than 20 lines
-- Collapse table if it's larger than 20 lines
local func_class = "wikitable sortable mw-collapsible"
local func_class = "wikitable sortable mw-collapsible"
--if #module_functions > 20 then
--if #module_funcs > 20 then
-- func_class = func_class .. " mw-collapsed"
-- func_class = func_class .. " mw-collapsed"
--end
--end
local lines = {}
local lines = {}
--table.insert(lines, string.format("'''Module:%s''' provides %d function(s):", module_name, #module_functions))
--table.insert(lines, string.format("'''Module:%s''' provides %d function(s):", module_name, #module_funcs))
table.insert(lines, "{| class=\"" .. func_class .. "\"")
table.insert(lines, "{| class=\"" .. func_class .. "\"")
table.insert(lines, "|+ Functions provided by this module")
table.insert(lines, "|+ Functions provided by this module")
Line 205: Line 205:
table.insert(lines, "! Line")
table.insert(lines, "! Line")


for _, f in ipairs(module_functions) do
for _, f in ipairs(module_funcs) do
local link = string.format("[[Module:%s#L-%d|%s]]", module_name, f.line, f.name)
local link = string.format("[[Module:%s#L-%d|%s]]", module_name, f.line, f.name)
Line 257: Line 257:


-- Return the tables as strings
-- Return the tables as strings
local summary = string.format("'''Introspection summary:''' Module:%s requires %d unique Lua modules and provides %d functions(s).", module_name, num_deps, #module_functions)
local summary = string.format("'''Introspection summary:''' Module:%s requires %d unique Lua modules and provides %d functions(s).", module_name, num_deps, #module_funcs)
return summary .. "\n" .. dep_table .. "\n" .. func_table
return summary .. "\n" .. dep_table .. "\n" .. func_table
end
end