Module:Module introspection: Difference between revisions
refactor so main function preprocesses module's code and passes it to all necessary helper functions, then uses that info to build tables (which are now done by helper functions) |
mNo edit summary |
||
| Line 132: | Line 132: | ||
-- Helper function; builds the table of dependencies | -- Helper function; builds the table of dependencies | ||
-- All dependencies are included regardless of use | -- All dependencies are included regardless of use | ||
function p.make_dependency_table(deps, dep_functions) | function p.make_dependency_table(module_name, deps, dep_functions) | ||
local dep_lines = {} | local dep_lines = {} | ||
table.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 172: | Line 173: | ||
function p.make_function_table(module_name, module_functions) | function p.make_function_table(module_name, module_functions) | ||
-- 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 = {} | |||
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 214: | Line 217: | ||
local deps = p.find_dependencies(preprocessed_content) | local deps = p.find_dependencies(preprocessed_content) | ||
local dep_functions = p.find_dependency_functions(preprocessed_content) | local dep_functions = p.find_dependency_functions(preprocessed_content) | ||
local dep_lines = p.make_dependency_table(deps, dep_functions) | local dep_lines = p.make_dependency_table(module_name, deps, dep_functions) | ||
-- Get module's functions, then build a table using that information | -- Get module's functions, then build a table using that information | ||