Saltar para o conteúdo

Módulo:GetParameters/Testes

Origem: Wikipédia, a enciclopédia livre.
Documentação do módulo[ver] [editar] [histórico] [purgar]

Uso[editar código-fonte]

getParameters[editar código-fonte]

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 código-fonte]

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 código-fonte]

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 código-fonte]

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