Module:Module introspection: Difference between revisions

Ganaram inukshuk (talk | contribs)
Undo revision 214627 by Ganaram inukshuk (talk)
Tag: Undo
Ganaram inukshuk (talk | contribs)
No edit summary
Line 132: Line 132:


-- Table header
-- Table header
table.insert(lines, '{| class="wikitable sortable left-1 left-2"')
table.insert(lines, '{| class="wikitable sortable"')
table.insert(lines, "! Variable")
table.insert(lines, "! Variable")
table.insert(lines, "! Module")
table.insert(lines, "! Module")
Line 194: Line 194:
-- 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_functions > 20 then
func_class = func_class .. " mw-collapsed"
-- func_class = func_class .. " mw-collapsed"
end
--end
local func_lines = {}
local lines = {}
--table.insert(func_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_functions))
table.insert(func_lines, "{| class=\"" .. func_class .. "\"")
table.insert(lines, "{| class=\"" .. func_class .. "\"")
table.insert(func_lines, "|+ Functions provided by this module")
table.insert(lines, "|+ Functions provided by this module")
table.insert(func_lines, "! Function")
table.insert(lines, "! Function")
table.insert(func_lines, "! Line")
table.insert(lines, "! Line")


for _, f in ipairs(module_functions) do
for _, f in ipairs(module_functions) do
Line 213: Line 213:
end
end
table.insert(func_lines, "|-")
table.insert(lines, "|-")
table.insert(func_lines, "| " .. link)
table.insert(lines, "| " .. link)
table.insert(func_lines, "| " .. f.line)
table.insert(lines, "| " .. f.line)
end
end
table.insert(func_lines, "|}")
table.insert(lines, "|}")
return func_lines
return table.concat(lines, "\n")
end
end


Line 243: Line 243:
-- Get module's functions, then build a table using that information
-- Get module's functions, then build a table using that information
local module_functions = p.find_functions(code)
local module_functions = p.find_functions(code)
local func_lines = p.make_function_table(module_name, module_functions, main_function)
local func_table = p.make_function_table(module_name, module_functions, main_function)
-- Count unique dependencies used
local num_deps = 0
local deps_found = {}
for _, v in ipairs(dep_table) do
local dep = v["dep"]
if not deps_found[dep] then
deps_found[dep] = true
num_deps = num_deps + 1
end
end


-- Return the tables as strings
-- Return the tables as strings
local summary = string.format("'''Introspection summary:''' Module:%s provides %d functions(s).", module_name, #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_functions)
return summary .. "\n" .. table.concat(func_lines, "\n") .. "\n" .. dep_table
return summary .. "\n" .. dep_table .. "\n" .. func_table
end
end