Module:Wikipedia:WikiProject U.S. Roads/Assessment/States/Live explained

local p =

local classes =

do local _pagesInCat = mw.site.stats.pagesInCategory function pagesInCat(name) return _pagesInCat(name, 'pages') endend

local function pageCounts(project) local counts = for _,class in pairs(classes) do local category = string.format("%s-Class %s articles", class, project) counts[class] = pagesInCat(category) end return countsend

local function totalPageCount(counts) return counts.FA + counts.A + counts.GA + counts.B + counts.C + counts.Start + counts.Stubend

local function totalWikiwork(counts) return counts.A + 2*counts.GA + 3*counts.B + 4*counts.C + 5*counts.Start + 6*counts.Stubend

function p._row(args) local insert = table.insert local format = string.format local cells = local rowHeader if args.gray then rowHeader = "|- bgcolor='silver'" else rowHeader = "|-" end insert(cells, rowHeader)

local state = args.state local project = state and format("%s road transport", state) or args.project local abbr = args.abbr or state

insert(cells, format("|%s", project, abbr))

local counts = pageCounts(project) for _,class in ipairs(classes) do insert(cells, format("|align='center'|%s", class, project, counts[class])) end

local totalCount = totalPageCount(counts) insert(cells, format("|align='center'|%s", totalCount))

local totalWW = totalWikiwork(counts) insert(cells, format("|align='right'|%s", totalWW))

local roundedWW if totalCount > 0 then local relativeWW = totalWW / totalCount local math = require "Module:Math" local round = math._precision_format roundedWW = round(tostring(relativeWW), "3") else roundedWW = '0.000' end insert(cells, format("|align='right'|%s", roundedWW))

return table.concat(cells, '\n')end

function p.row(frame) local argsModule = require('Module:Arguments') local args = argsModule.getArgs(frame) return p._row(args)end

return p