Module:Pad
Jump to navigation
Jump to search
File:Test Template Info-Icon - Version (2).svg Module documentation[create] [purge]
local p = {};
local arguments = require("Module:Arguments");
local function padStart(str, maxLength, fillString)
s = ""
for i = 0, maxLength - #str, 1 do
f = "";
for j = 0, #fill, 1 do
c = string.sub(fill, j, j);
if (#s + j + #str > maxLength) then
return s..f..str;
end
f = f..c;
end
s = s..f;
end
return s..str;
end
local function padEnd(str, maxLength, fillString)
s = str;
for i = 0, maxLength - #str, 1 do
f = "";
for j = 0, #fill, 1 do
c = string.sub(fill, j, j);
if (#s + j > maxLength) then
return s..f;
end
f = f..c;
end
s = s..f;
end
return s;
end
function p._pad(args)
str = args.str;
len = args.len;
mode = args.mode;
fill = args.fill;
if (str == nil) then
str = "";
end
if (len == nil) then
return args.str;
end
if (mode == nill) then
mode = "end";
end
if (fill == nil) then
return str;
end
if (mode == "start") then
return padStart(str, tonumber(len), fill);
elseif (mode == "end") then
return padEnd(str, tonumber(len), fill);
else
error("Invalid mode argument '"..mode.."'")
end
end
function p.pad(frame)
return p._pad(frame.args);
end
return p;