Módulo:Directory: mudanças entre as edições

De Wikincat
Ir para navegação Ir para pesquisar
Conteúdo deletado Conteúdo adicionado
Sem resumo de edição
(Sem diferença)

Edição das 18h07min de 22 de janeiro de 2020

A documentação para este módulo pode ser criada em Módulo:Directory/doc

-- Author: @vitorsilverio
-- Author: @jaideraf
local p = {}
function p.makeDirectory ( frame )
	local sum = 0
	local directory = ''
	for index, tagAndLenght in ipairs( 
		mw.text.split ( frame.args[1]:gsub( '%[%[SMW::...?%]%]', '' ), ',' , true ) 
		) do
		-- frame.args[1] captura o primeiro e único argumento da chamada 
		-- {{#invoke:Directory|makeDirectory|...}} que é o resultado das consultas
		-- #ask da Predefinição:Directory. Ele retorna, portanto, valores como: 
		-- '0010007,0030009,0050017,0080041'. 
		-- É necessário remover as marcações invisíveis [[SMW::off]] e [[SMW::on]] 
		-- para que a conta abaixo seja efetuada com sucesso. 
		-- mw.text.split divide a string recebida, tendo como delimitadora, 
		-- literalmente (true), a vírgula, e armazena os dados em uma tabela: 
		-- { '0010007', '0030009', '0050017', '0080041' }
		-- os valores capturados são passados para a variável 'tagAndLenght'.
		directory = string.format( '%s%s%05d', directory, tagAndLenght, sum )
		-- o diretório é montado concatenando as variáveis 'directory', 'tagAndLenght' 
		-- e 'sum'. '%s%s%05d' significa que 'directory' é uma string, 
		-- 'tagAndLenght' é uma string e 'sum' são 5 dígitos completados com 0)
		sum = sum + tagAndLenght:sub( 4, 7 )
		-- a cada iteração, os últimos 4 números de 'tagAndLenght' são somados e 
		-- armazenados na variável 'sum'.
	end
	return directory
	-- retorna o diretório completo:
	-- '001000700000003000900007005001700016008004100033'
end
return p