Module:Module introspection: Difference between revisions

Ganaram inukshuk (talk | contribs)
mNo edit summary
Ganaram inukshuk (talk | contribs)
No edit summary
Line 135: Line 135:
local dep_lines = {}
local dep_lines = {}
table.insert(dep_lines, string.format("'''Module:%s''' requires the following dependencies:", module_name))
--.insert(dep_lines, string.format("'''Module:%s''' requires the following dependencies:", module_name))
table.insert(dep_lines, '{| class="wikitable sortable"')
table.insert(dep_lines, '{| class="wikitable sortable"')
--table.insert(dep_lines, '|+ Dependencies and functions used')
table.insert(dep_lines, '|+ Dependencies and functions used')
table.insert(dep_lines, "! Dependency")
table.insert(dep_lines, "! Dependency")
table.insert(dep_lines, "! Variable")
table.insert(dep_lines, "! Variable")
Line 180: Line 180:
local func_lines = {}
local func_lines = {}
table.insert(func_lines, string.format("'''Module:%s''' provides %d function(s):", module_name, #module_functions))
--table.insert(func_lines, string.format("'''Module:%s''' provides %d function(s):", module_name, #module_functions))
table.insert(func_lines, "{| class=\"" .. func_class .. "\"")
table.insert(func_lines, "{| class=\"" .. func_class .. "\"")
--table.insert(func_lines, "|+ Functions provided by this module")
table.insert(func_lines, "|+ Functions provided by this module")
table.insert(func_lines, "! Function")
table.insert(func_lines, "! Function")
table.insert(func_lines, "! Line")
table.insert(func_lines, "! Line")
Line 224: Line 224:


-- Return the tables as strings
-- Return the tables as strings
return table.concat(dep_lines, "\n"), table.concat(func_lines, "\n")
local summary = string.format("Introspection summary: Module:%s requires %d module(s) and provides %d functions(s).", module_name, #deps, #module_functions)
return summary .. "\n" .. table.concat(dep_lines, "\n") .. "\n" .. table.concat(func_lines, "\n")
end
end


Line 231: Line 232:
function p.module_introspection(frame)
function p.module_introspection(frame)
-- Extract arguments using getArgs
-- Extract arguments using getArgs
local args = getArgs(frame)
local args = getArgs(frame) or {}


-- Get module name from arguments, or default to current page
-- Get module name from arguments, or default to current page
Line 244: Line 245:
local normalized_name = module_name:gsub("[^%w]", "_"):lower()
local normalized_name = module_name:gsub("[^%w]", "_"):lower()
local main_function = args["main_function"] or "_" .. normalized_name
local main_function = args["main_function"] or "_" .. normalized_name
 
-- Call the introspection function
-- Return
local dep_table, func_table = p._module_introspection({
return p._module_introspection({
["module_name"]  = module_name,
["module_name"]  = module_name,
["main_function"] = main_function,
["main_function"] = main_function,
})
})
-- Return combined tables
return dep_table .. "\n" .. func_table .. "\n"
end
end


return p
return p