Documentação do módulo[ver] [editar] [histórico] [purgar]

getParameters

editar

Recebe 2 argumentos obrigatórios, frame_args e arg_list. Analisa os argumentos de um quadro, retornando os argumentos nomeados fornecidos em arg_list se encontrados ou os parâmetros posicionais se não forem encontrados. Isso foi projetado para contornar a remoção de valores que ocorre para parâmetros definidos que podem ser importantes.

Por exemplo, as chamadas getParameters({"a", "b", "c"}, {"x", "y"}) e getParameters({x="a", y="b", z="c"}, {"x", "y"}) ambas devolveriam {x="a", y="b"}.

getBoolean

editar

Leva 1 argumento obrigatório boolean_str. Transforma a entrada em um valor booleano verdadeiro/falso com base na entrada. Ocorrerá um erro se for fornecido algo diferente de uma sequência (string) ou valor booleano.

defined

editar

Para ser invocada de dentro de uma predefinição em vez de de um módulo. Determina se um determinado parâmetro está definido nos argumentos do quadro parental.

Ver também

editar

local p = {}

--[[
Função auxiliar que preenche a lista de argumentos, visto que o usuário pode precisar usar uma combinação de
parâmetros nomeados e sem nome. Isto é relevante porque os parâmetros nomeados não são
idênticos aos parâmetros sem nome devido ao corte de sequências (strings) e ao lidar com sequências (strings)
às vezes queremos preservar ou remover esse espaço em branco, dependendo da aplicação.
]]
function p.getParameters( frame_args, arg_list )
    local new_args = {};
    local index = 1;
    local value;
    
    for i,arg in ipairs( arg_list ) do
        value = frame_args[arg]
        if value == nil then
            value = frame_args[index];
            index = index + 1;
        end
        new_args[arg] = value;
    end
    
    return new_args;
end        

--[[
Função auxiliar para interpretar sequências (strings)  booleanas
]]
function p.getBoolean( boolean_str )
    local boolean_value;
    
    if type( boolean_str ) == 'string' then
        boolean_str = boolean_str:lower();
        if boolean_str == 'false' or boolean_str == 'no' or boolean_str == '0' 
                or boolean_str == '' then
            boolean_value = false;
        else
            boolean_value = true;
        end    
    elseif type( boolean_str ) == 'boolean' then
        boolean_value = boolean_str;
    else
        error( 'Nenhum valor booleano encontrado' );
    end    
    return boolean_value
end

function p.defined(frame)
	local arg = mw.text.trim(frame.args[1])
	--if arg == tostring(tonumber(arg)) then -- resultado indesejado para '-0'
	--	arg = tonumber(arg)
	--end
	--if mw.ustring.find(arg, '^%s*-?[1-9][0-9]*%s*$') ~= nil or arg == '0' then
	--	arg = tonumber(arg)
	--end
	if mw.ustring.find(arg, '^-?[1-9][0-9]*$') ~= nil then
		arg = tonumber(arg)
	elseif arg == '0' then
		arg = 0
	end
	return frame:getParent().args[arg] ~= nil
end

return p