Modul:OutputBuffer

De la Wikipedia, enciclopedia liberă
Sari la navigare Sari la căutare

Acest modul furnizează o metodă ușoară și eficientă de a genera șiruri lungi de caractere.

Utilizare[modificare sursă]

Mai întâi, încărcați modulul

local newBuffer = require('Module:OutputBuffer')

Apoi, creați bufferul și funcțiile care acționează asupra lui.

local getBuffer, print, printf = newBuffer()

getBuffer[modificare sursă]

local text = getBuffer(sep)

Returnează conținutul bufferului, cu un șir separator opțional sep.

print[modificare sursă]

print(s)

Adaugă șirul s la buffer.

printf[modificare sursă]

printf(s, ...)

Adaugă șirul s la buffer. Șirul este formatat cu argumentele ulterioare după regulile de la string.format.

Exemplu[modificare sursă]

local newBuffer = require('Module:OutputBuffer')
local p = {}

function p.main()
	local getBuffer, print, printf = newBuffer()
	print('Welcome to the English Wikipedia.')
	printf('There are currently %d articles on this site.', mw.site.stats.articles)
	return getBuffer(' ')
end

return p

-- Assuming this module's name is "TestModule", and that mw.site.stats.articles returns 4500000,
-- {{#invoke:TestModule|main}} would output:
-- "Welcome to the English Wikipedia. There are currently 4500000 articles on this site."

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