Module:OutputBuffer
Sarna News
- HEXTECH Review - Wave 3 Brings More Urban Options To Your Battlefield
- Your BattleTech News Round-Up For March, 2024
- Crashing 'Mechs With Jennifer Brozek, Author Of The Rogue Academy Trilogy
- Getting The Word Out With Rem Alternis, Catalyst Community & Marketing Director
- Bad 'Mechs - Yeoman
- Read more →
This module provides an easy and efficient way to generate lengthy strings.
Contents
Usage[edit]
First, load the module.
local newBuffer = require('Module:OutputBuffer')
Then, create the buffer and the functions that act on it.
local getBuffer, print, printf = newBuffer()
getBuffer[edit]
local text = getBuffer(sep)
Returns the contents of the buffer, with an optional separator string sep.
print[edit]
print(s)
Adds the string s to the buffer.
printf[edit]
printf(s, ...)
Adds the string s to the buffer. The string is formatted with any subsequent arguments, following the rules used for string.format.
Example[edit]
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