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
getParameters
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
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
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
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