Module:Module introspection: Difference between revisions

Ganaram inukshuk (talk | contribs)
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)
Ganaram inukshuk (talk | contribs)
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)
local func_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 = {}
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