Module:Proposal support: Difference between revisions

From Tardis Wiki, the free Doctor Who reference
No edit summary
Tag: Reverted
No edit summary
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
local p = {}
local p = {}
--from [[Module:SMW]]
concat = function(...)
    local args = {...}
    if #args == 0 then
        error('you must supply at least one argument to \'concat\' (got none)')
    end
    local firstArg = table.remove(args, 1)
    if type(firstArg) == 'string' or type(firstArg) == 'number' then
        firstArg = print(firstArg)
    else
        firstArg = ''
    end
    if #args == 0 then
        return firstArg
    else
        return firstArg .. concat(unpack(args))
    end
end
dump = function(entity, indent, omitType)
    local entity = entity
    local indent = indent and indent or ''
    local omitType = omitType
    if type( entity ) == 'table' then
        local subtable
        if not omitType then
            subtable = '(table)[' .. #entity .. ']:'
        end
        indent = indent .. '\t'
        for k, v in pairs( entity ) do
            subtable = concat(subtable, '\n', indent, k, ': ', dump(v, indent, omitType))
        end
        return subtable
    elseif type( entity ) == 'nil' or type( entity ) == 'function' or type( entity ) == 'boolean' then
        return ( not omitType and '(' .. type(entity) .. ') ' or '' ) .. print(entity)
    elseif type( entity ) == 'string' then
        entity = mw.ustring.gsub(mw.ustring.gsub(entity, "\\'", "'"), "'", "\\'")
        return concat(omitType or '(string) ', '\'', entity, '\'')
    else
        -- number value expected
        return concat(omitType or '(' .. type( entity ) .. ') ', entity)
    end
end


function p.proposalSupport(frame)
function p.proposalSupport(frame)
local args = frame:getParent().args
local args = frame:getParent().args
return dump(args)
local supporters = 0
--[[local supporters = #args
local list = ""
local list = ""
for i=1, #args do
for _, sig in ipairs(args) do
list = list .. "\n* " .. args[i]
if sig ~= "" and sig ~= " " and not list:find(sig, 1, true) then
list = list .. "\n* " .. sig:gsub("\n", "")
supporters = supporters + 1
end
end
end
local final = '<div data-sort-value="' .. supporters .. '">' .. list .. '\n</div>'
local s = "s"
return final]]--
if supporters == 1 then s = "" end
local final = '<div data-sort-value="' .. supporters .. '">' .. supporters .. ' supporter' .. s .. list .. '\n</div>'
return final
end
end


return p
return p

Latest revision as of 18:40, 9 March 2023

Documentation for this module may be created at Module:Proposal support/doc

local p = {}

function p.proposalSupport(frame)
	local args = frame:getParent().args
	local supporters = 0
	local list = ""
	for _, sig in ipairs(args) do
		if sig ~= "" and sig ~= " " and not list:find(sig, 1, true) then
			list = list .. "\n* " .. sig:gsub("\n", "")
			supporters = supporters + 1
		end
	end
	local s = "s"
	if supporters == 1 then s = "" end
	local final = '<div data-sort-value="' .. supporters .. '">' .. supporters .. ' supporter' .. s .. list .. '\n</div>'
	return final
end

return p