Modul:BanánokArgumentumok

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

A frame egy tábla. Ezen belül van egy args nevű táblán belüli tábla. Az argumentumok elérésére ez a modul mutat be ajánlott módszereket és ezeket szemlélteti is. A teszt egyszerűen a vitalapra kattintással indul el.

-- Egyszerű modul, amely demonstrálja, hogya érük al a frame argumentumokat
-- Magáról a  Frame objektumról szól: http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Frame_object
-- Unit tesztelése a Modul:BananánokArgumentumok/tesztdoboz-ban
 
local p = {}
 
-- Ha nincs argumentum, akkor így használjuk: {{#invoke:BanánokArgumentumok|hello_vilag}}
function p.hello_vilag()
    return "Hello, világ!"
end
 

-- egy argumentummal  így használjuk: {{#invoke:BanánokArgumentumok|hello|Fred}}
function p.hello(frame)
    local name = frame.args[1]
    return "Hello, " .. name .. "!"
end
 
-- Két argumentummal  így használjuk: {{#invoke:BanánokArgumentumok|add|5|3}}
function p.add(frame)
    local num1 = tonumber(frame.args[1])
    local num2 = tonumber(frame.args[2])
    return num1 + num2
end

-- Névvel adott argumentummal  így használjuk: {{#invoke:BanánokArgumentumok|gyumolcsszamlalas|banánból=5|almából=3}}
function p.gyumolcsszamlalas(frame)
    local num_bananas = frame.args['banánból']
    local num_apples = frame.args['almából']
    return 'Van ' .. num_bananas .. ' banánom és ' .. num_apples .. ' almám'end
 
-- Reguláris argumentumok és nevesítettek, ill. opcionálisan nevesítettek keverése
-- így használjuk: {{#invoke:BanánokArgumentumok|gyumolcsei|Feri|banánból=5|cseresznyéből=7}}
function p.gyumolcsei(frame)
    local name = frame.args[1]
    local num_bananas = frame.args['banánból']
    local num_apples = frame.args['almából']
    local num_cherries = frame.args['cseresznyéből']
    local result = name .. 'nek van:'
    if num_bananas then result = result .. ' ' .. num_bananas .. ' banánja' end
    if num_apples then result = result .. ' ' .. num_apples .. ' almája' end
    if num_cherries then result = result .. ' ' .. num_cherries .. ' cseresznyéje' end
    return result
end
 
-- így iterálunk a frame.args táblában: 
-- {{#invoke:BanánokArgumentumok|gyumolcsok_fogyasztasa|szilva=10|kivi=5}}
function p.gyumolcsok_fogyasztasa(frame)
    local result = 'Amim van az:'
    for name, value in pairs(frame.args) do
        result = result .. ' ' .. value .. ' ' .. name
    end
    return result
end
 
-- iterálás szeparált, kötelező argumentumokon így megy:
--  {{#invoke:BanánokArgumentumok|gyumolcsok_fogyasztasa_2|Feri|szilva=10|kivi=5}}
function p.gyumolcsok_fogyasztasa_2(frame)
    local name = frame.args[1]
    local result = name .. ' gyümölcsei:'
    for name, value in pairs(frame.args) do
        if name ~= 1 then
            result = result .. ' ' .. value .. ' ' .. name
        end
    end
    return result
end
 
return p