Перейти до вмісту

Модуль:OutputBuffer

Матеріал з Вікіпедії — вільної енциклопедії.
{{i}} Документація модуля[перегляд] [редагувати] [історія] [очистити кеш]

Цей модуль надає простий та ефективний метод створення довгих рядків.

Використання

Спершу, завантажте модуль.

local newBuffer = require('Module:OutputBuffer')

Потім, створіть буфер та функції, що працюють з ним.

local getBuffer, print, printf = newBuffer()

getBuffer

local text = getBuffer(sep)

Повертає вміст буфера з необов'язковим рядком-роздільником sep.

print

print(s)

Додає рядок s до буфера.

printf

printf(s, ...)

Додає рядок s до буфера. Рядок форматується за будь-якими послідовними аргументами, дотримуючись правил, використаних для string.format.

Приклад

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

function p.main()
	local getBuffer, print, printf = newBuffer()
	print('Ласкаво просимо до української Вікіпедії.')
	printf('Зараз є %d статей на цьому сайті.', mw.site.stats.articles)
	return getBuffer(' ')
end

return p

-- Припускаючи, що назвою модуля є «TestModule» та, що mw.site.stats.articles поверне 1343603,
-- то {{#invoke:TestModule|main}} виведе:
-- «Ласкаво просимо до української Вікіпедії. Зараз є 1343603 статей на цьому сайті.»
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