Module:Addcommas
Jump to navigation
Jump to search
Documentation for this module may be created at Module:Addcommas/doc
-- <nowiki>
--
-- Implements {{Addcommas}}
--
local libraryUtil = require('libraryUtil')
local p = {}
--
-- main function
-- keep public so it can be used in other modules
--
function p._add(arg)
libraryUtil.checkTypeMulti('Module:Addcommas._add', 1, arg, {'number', 'string'})
local lang = mw.language.getContentLanguage()
if type(arg) == 'number' then
return lang:formatNum(arg)
else
local z = tostring(arg)
-- strip any existing commas
z = z:gsub(',', '')
local y = mw.text.split(z, '[%-–]')
local x
-- handle ranges as separate numbers
-- required by [[Module:Exchange]] (p._table)
if y[1] ~= '' and y[2] then
y[1] = tonumber(y[1])
y[2] = tonumber(y[2])
x = lang:formatNum(y[1]) .. '–' .. lang:formatNum(y[2])
else
x = lang:formatNum(tonumber(z))
end
return x
end
end
--
-- strips any existing commas in the input
--
function p._strip(str)
libraryUtil.checkType('Module:Addcommas._strip', 1, str, 'string')
return str:gsub(',', '')
end
function p.commas (frame)
local str = frame:getParent().args[1]
return p._add(str)
end
return p
-- </nowiki>