Module:OutputBuffer: Difference between revisions
Appearance
Content deleted Content added
Jackmcbarn (talk | contribs) make a printf-like too |
Jackmcbarn (talk | contribs) change output order and fix bug |
||
Line 1: | Line 1: | ||
return function() |
return function() |
||
local buffer = {} |
local buffer = {} |
||
return function( |
return function(sep) |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
buffer[#buffer + 1] = text |
buffer[#buffer + 1] = text |
||
end, |
end, |
||
function(...) |
function(...) |
||
buffer[#buffer + 1] = string.format(...) |
buffer[#buffer + 1] = string.format(...) |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
end |
end |
||
end |
end |
Revision as of 00:06, 26 June 2014
This module provides an easy and efficient way to generate lengthy strings.
Usage
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
local text = getBuffer(sep)
Returns the contents of the buffer, with an optional separator string sep.
print(s)
Adds the string s to the buffer.
printf
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
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."