Модул:Корисник:Ђидо/Инфокутија/функције
Документацију овог модула можете да направите на страници Модул:Корисник:Ђидо/Инфокутија/функције/док
local p = {};
local transliteration = require('Модул:Transliteration')
function getCannonicalName(param, paramNames)
for k, v in pairs(paramNames) do
for i, possibleParamName in ipairs(v) do
local actualName = transliteration.latinize(param:lower():gsub('-', ' '):gsub('_', ' '))
local expectedName = transliteration.latinize(possibleParamName:lower())
if actualName == expectedName then
return k
end
end
end
return nil
end
p.parseBoolean = function(text, default)
if text then
local value = transliteration.latinize(text:lower())
if value == 'ne' or value == 'no' or value == '0' or value == 'false' then
return false
elseif value == 'da' or value == 'yes' or value == '1' or value == 'true' then
return true
else
error('Непозната вредност за да/не вредност: ' .. text)
end
end
return default or false
end
p.parseParams = function(params, paramNames)
local knownParams = {}
local unknownParams = {}
local positionalParams = {}
for k, v in pairs(params) do
local number = tonumber(k)
if number then
table.insert(positionalParams, v)
else
local cannonicalName = getCannonicalName(k, paramNames)
if cannonicalName then
knownParams[cannonicalName] = v
else
unknownParams[k] = v
end
end
end
return { knownParams, unknownParams, positionalParams }
end
return p