Módulo:DemoArgs

De Enciclopedia de conocimiento de la Iglesia de Dios
Ir a la navegación Ir a la búsqueda

Uso

Módulo de demostración con argumentos


-- Ejemplo de muestra sobre el uso de argumentos.

local p = {}

-- Sin argumentos, usar como: {{#invoke:DemoArgs|hola_mundo}}
function p.hola_mundo()
    return "¡Hola mundo!"
end
 
-- Un argumento, usar como: {{#invoke:DemoArgs|hola|Pepe}}
function p.hola(frame)
    local nombre = frame.args[1]
    return "¡Hola " .. nombre .. "!"
end

-- Dos argumentos, usar como: {{#invoke:DemoArgs|suma|5|3}}
function p.suma(frame)
    local num1 = tonumber(frame.args[1])
    local num2 = tonumber(frame.args[2])
    return num1 + num2
end

-- Argumentos con nombre, usar como: {{#invoke:DemoArgs|tengo_fruta|manzanas=5|peras=3}}
function p.tengo_fruta(frame)
    local num_manzanas = frame.args['manzanas']
    local num_peras = frame.args['peras']
    return 'Tengo ' .. num_manzanas .. ' manzanas y ' .. num_peras .. ' peras'
end

-- Mezcla de argumentos normales, con nombre y opcionales.
-- Usar como: {{#invoke:DemoArgs|tiene_fruta|Pepe|bananas=5|ciruelas=7}}
function p.tiene_fruta(frame)
    local nombre = frame.args[1]
    local num_bananas = frame.args['bananas']
    local num_manzanas = frame.args['manzanas']
    local num_ciruelas = frame.args['ciruelas']
    
    local resultado = nombre .. ' tiene:'
    if num_bananas then resultado = resultado .. ' ' .. num_bananas .. ' bananas' end
    if num_manzanas then resultado = resultado .. ' ' .. num_manzanas .. ' manzanas' end
    if num_ciruelas then resultado = resultado .. ' ' .. num_ciruelas .. ' ciruelas' end
    return resultado
end

-- Iteración de argumentos, usado como: {{#invoke:DemoArgs|encarga_fruta|piñas=10|kiwis=5}}
function p.encarga_fruta(frame)
    local resultado = 'Tengo:'
    for nombre, valor in pairs(frame.args) do
        resultado = resultado .. ' ' .. valor .. ' ' .. nombre 
    end
    return resultado
end

-- Iteración de argumentos con uno obligatorio
-- Usar como: {{#invoke:DemoArgs|encarga_fruta_2|Pepe|piñas=10|kiwis=5}}
function p.encarga_fruta_2(frame)
    local nombre = frame.args[1]
    local resultado = nombre .. ' tiene:'
    for nombre, valor in pairs(frame.args) do
        if nombre ~= 1 then
            resultado = resultado .. ' ' .. valor .. ' ' .. nombre 
        end
    end
    return resultado
end

return p