Módulo:GetParameters
Este módulo está classificado como beta, e está pronto para utilização generalizada. Ele ainda é novo e deve ser utilizado com cautela, para garantir que os resultados sejam os esperados. |
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