Module:Strings

From Granblue Fantasy Wiki
Jump to navigation Jump to search

Documentation for this module may be created at Module:Strings/doc

local getArgs = require('Module:Arguments').getArgs

local p = {}

function p.reverseArgs(frame)
	local args = getArgs(frame, {
		trim = true,
		removeBlanks = true
	})
	local result = {}
	for _,v in pairs(frame.args) do
		table.insert(result, 1, v)
	end
	return table.concat(result, '')
end

function p.formatInt(frame)
	local args = getArgs(frame, {
		trim = true,
		removeBlanks = true
	})
	local number = args[1] or args['number'] or ''
	if (number == '') then return '' end
	if ((number):find(',') ~= nil) then return number end
	return p._formatInt(number)
end

function p._formatInt(number)
	local i, j, minus, int, fraction = tostring(number):find('([-]?)(%d+)([.]?%d*)')

	-- reverse the int-string and append a comma to all blocks of 3 digits
	int = int:reverse():gsub("(%d%d%d)", "%1,")

	-- reverse the int-string back remove an optional comma and put the 
	-- optional minus and fractional part back
	return minus .. int:reverse():gsub("^,", "") .. fraction
end

return p