Modul:LuaWikiTests

A Wikipédiából, a szabad enciklopédiából

LuaWikiTests[mi ez?] • [dokumentáció: mutat, szerkeszt] • [tesztek: létrehozás]

--[=[ 
A modul teszteli a "LuaWiki" modult
===================================
 
LuaWiki -  Lua programozás támogatása a Wiki környezetben
* .error(about) -- vörösben fog megjelenni az adott oldalon a hibaüzenet
    -- Paraméter:
    --     about  -- string, a hibaüzenet
* .getArg( arg, assign )
    -- Sablon paraméterét adja vissza
    -- Paraméter:
    --     arg     -- string vagy szám a sablon paraméterének azonosítója
    --     assign  -- tetszőleges opcionális érték; default value
* .initVariables( request )
    -- Inicializálja a  wikiVariables táblát a request argumentumban megadott tábla szerint
    -- Paraméter
    --     @request  -- tábla, melynek minden eleme vagy 
    --                        * string; a változó neve (  pl. "FULLPAGENAMEE"  )
    --                        * tábla: két elemmel a névvel és  true logikai értékkel, ha a névhez számérték tartozik
    --                                  (  pl. {"CURRENTYEAR",true}  )
* .getVariable( seek, numeric )
    -- Visszaad egy elemet a  wikiVariables táblából; telepíti azt, ha még nincs ott
    -- Argumentumok:
    --     @seek, -- string; a lekérdezendő wiki-változó neve
    --     @numeric  -- true, ha a lekérdezendő numerikus, különben false
* .isExisting( seek ) 
    -- visszaadott értéke true, amennyiben az oldal létezik, false különben
    -- Paraméter
    --     @seek  -- string; az oldal teljes neve (full page name)
* .transclude ( s, args )
    -- kibont egy s sablont, ha ilyen van és azt stringként adja vissza,  különben hibaüzenetet ad "Parancsfájl-hiba"
    -- ha erre a piros hibaüzenetre rákattintasz, mivel az egy link, akkor kapod meg felugró ablakban a tulajdonképpeni
    -- hibaüzenetet
    -- Paraméterek:
    --     s     -- string; a keresett sablon  neve
    --     args  -- tábla vagy nil; a sablon  argumentumai
]=]

local LuaWiki = require('Modul:LuaWiki')

local p = {}


      
              

function p.val_to_str(v)
    if type(v) == 'string' then
        v = mw.ustring.gsub(v, '\n', '\\n')
        if mw.ustring.match(mw.ustring.gsub(v, '[^\'"]', ''), '^"+$') then
            return "'" .. v .. "'"
        end
        return '"' .. mw.ustring.gsub(v, '"', '\\"' ) .. '"'
    else
        return type(v) == 'table' and p.table_to_str(v) or tostring(v)
    end
end
 
function p.table_key_to_str(k)
    if type(k) == 'string' and mw.ustring.match(k, '^[_%a][_%a%d]*$') then
        return k
    else
        return '[' .. p.val_to_str(k) .. ']'
    end
end
 
function p.table_to_str(tbl)
    local result, done = {}, {}
    for k, v in ipairs(tbl) do
        table.insert(result, p.val_to_str(v))
        done[k] = true
    end
    for k, v in pairs(tbl) do
        if not done[k] then
            table.insert(result, p.table_key_to_str(k) .. '=' .. p.val_to_str(v))
        end
    end
    return '{' .. table.concat(result, ',') .. '}'
end

function p.dump(tbl, recursive)
    if type(tbl) ~= 'table' then
        return '<not a table!>'
    end
    local s = '{ '
    for k,v in pairs(tbl) do
        if type(k) ~= 'number' then 
            k = '"'..k..'"' 
        end
        if type(v) == 'table' then
            if recursive then
                v = p.dump(v, true)
            else
                v = 'table'
            end
        elseif type(v) == 'boolean' then -- no boolean -> string autoconversion in Lua
            if v then
                v = 'true'
            else
                v = 'false'
            end
        elseif type(v) == 'function' then 
            if v then
                v = 'function'
                 end    
        end
        s = s .. '['..k..'] = ' .. v .. ','
    end -- for k,v in pairs(tbl)
    return s .. '} '
end

local MiKell=   {{"CURRENTYEAR",true}, "FULLPAGENAMEE"}

p.run = function()
    
    LuaWiki.initVariables(MiKell)
    local ev= LuaWiki.getVariable("CURRENTYEAR") ; ev = ev + 20
    local teljeslapneev = LuaWiki.getVariable("FULLPAGENAMEE")
    --local s= "Év=" ..tostring(ev) .."   ,Teljes lapnév=" .. teljeslapneev 
                             -- Év=2033 ,Teljes lapnév=Modulvita:LuaWikiTests
    -- if LuaWiki.isExisting("Wikipédia:Javaslatok_kiemelt_szócikkekre" ) then s= "Javaslatok_kiemelt_szócikkekre- létező cikk" end 
                       --  Javaslatok_kiemelt_szócikkekre- létező cikk
    --s=LuaWiki.transclude ("Sablon:életkor-holt",{1840,2,22,1913,8,13} ) -- (73 évesen)
    s=LuaWiki.transclude ("Sablon:Életkor-holt",{1840,2,22,1913,8,13} ) --Lua error a(z) Modul:LuaWiki modulban a(z) 204. sorban: 
                                              -- Nem létező sablon: 'Sablon:életkert-holt'.
    return s  
end -- run


return p