Módulo:OutputBuffer

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

Este módulo serve para gerar de uma maneira façil e eficiente um texto comprido. Um buffer é um espaço tampão de texto, usado nas funções do módulo.

Uso

Primeiro, carregue o módulo.

local newBuffer = require('Módulo:OutputBuffer')

Depois, crie o buffer e as funções que atuam sobre este.

local getBuffer, print, printf = newBuffer()

getBuffer

local text = getBuffer(sep)

Devolve o conteúdo do buffer, com um separador opcional texto sep.

print

print(s)

Adiciona o texto s ao buffer.

printf

printf(s, ...)

Adiciona o texto s ao buffer. O texto é formatado com argumentos subsequentes, seguindo as regras usadas para string.format.

Exemplo

local newBuffer = require('Módulo:OutputBuffer')
local p = {}

function p.main()
    local getBuffer, print, printf = newBuffer()
    print('Bemvindo à Wikipédia em Português.')
    printf('Existem atualmente %d artigos neste site.', mw.site.stats.articles)
    return getBuffer(' ')
end

return p

return function()
	local buffer = {}
	return function(sep)
		local b = buffer
		buffer = {}
		return table.concat(b, sep)
	end,
	function(text)
		buffer[#buffer + 1] = text
	end,
	function(...)
		buffer[#buffer + 1] = string.format(...)
	end
end