FANDOM


-- Questa è la libreria di Bayonetta wiki per i Moduli in Lua!
 
local w = {}
 
-- Funzioni di gestione testo
 
-- Rimuove gli spazi vuoti all'inizio e alla fine di una stringa
w.trim = function(s)
    return tostring(s):match("^%s*(.-)%s*$")
end
 
string.trim = function(self) return w.trim(self) end
 
-- Rende maiuscola la prima lettera di una stringa
w.first_uppercase = function(s)
	s = tostring(s)
    return string.upper(s:sub(1,1))..s:sub(2)
end
 
-- Rende possibile la string interpolation in stile Python
-- es.: interp("${name} is ${value}", {name = "foo", value = "bar"}
-- vedi: http://lua-users.org/wiki/StringInterpolation
w.interp = function(s, tab)
    return (s:gsub('($%b{})', function(w) return tab[w:sub(3, -2)] or w end))
end
 
-- Aggiunge gli zeri a sinistra ai numeri con meno di tre cifre:
-- dato che valori numerici di questo tipo non sono supportati,
-- la funzione restituisce stringhe
 
w.three_figures = function(n)
    if n < 10 then
        return '00' .. n
    elseif n < 100 then
        return '0' .. n
    else
        return tostring(n)
    end
end
 
-- Funzioni per le tabelle
 
-- Ricerca lineare: si passa una table e un valore e
-- restituisce il suo indice o nil
 
w.linear_search = function(tab, value)
    for k, v in pairs(tab) do
	    if v == value then
	        return k
	    end
    end
    return nil
end
 
-- Standard per copiare il frame.args in un'altra table
-- dopo aver eseguito alcune operazioni
 
w.sample_args = function(tab, operations)
    local d = {}
    for k, v in pairs(tab) do
        d[k] = operations(v) or ''
    end
    return d
end
 
-- Funzione da passare come secondo argomento alla table.sort:
-- Dato un elenco di entries come elementi di una table
-- li ordina in base al numero; in presenza
-- di forme alternative, le ordina in ordine alfabetico
 
w.sort_ndex = function(a, b)
	local na, sa = a:match('Ani(%d+)(%a*)MS.gif')
	local nb, sb = b:match('Ani(%d+)(%a*)MS.gif')
	if na == nb then
		return (sa or 'a'):lower() < (sb or 'a'):lower()
	else
		return na < nb
	end
end
 
return w
 
----Crediti a: [http://wiki.pokemoncentral.it/Modulo:Wikilib]