Pendokumenan untuk modul ini boleh diciptakan di Modul:PisangArgs/doc

-- Modul contoh menunjukkan bagaiman mahu mengakses argumen.
-- Untuk mendapat maklumat lanjut tentang objek "Frame" 
-- lihat http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Frame_object 
-- Ujian unit di Modul:PisangArgs/kes_ujian

local p = {}
 
-- Tiada argumen, digunakan seperti : {{#invoke:PisangArgs|helo_dunia}}
function p.helo_dunia()
    return "Helo, dunia!"
end
 
-- Satu argumen, digunakan seperti: {{#invoke:PisangArgs|helo|Sudin}}
function p.helo(frame)
    local name = frame.args[1]
    return "Helo, " .. name .. "!"
end

-- Dua argumen, digunakan seperti: {{#invoke:PisangArgs|tambah|5|3}}
-- Nama fungsi adalah "tambah" 
function p.tambah(frame)
    local num1 = tonumber(frame.args[1])
    local num2 = tonumber(frame.args[2])
    return num1 + num2 
end

-- Argumen bernama, digunakan seperti: {{#invoke:PisangArgs|kira_buah|pisang=5|apel=3}}
function p.kira_buah(frame)
    local num_bananas = frame.args['pisang']
    local num_apples = frame.args['apel']
    return 'Saya ada ' .. num_bananas .. ' sikat pisang dan ' .. num_apples .. ' biji apel'
end

-- Mencampur argumen biasa dengan argumen bernama dan argumen bernama pilihan 
-- Digunakan seperti: {{#invoke:PisangArgs|mempunyai_buah|Sudin|pisang=5|ceri=7}}
function p.mempunyai_buah(frame)
    local name = frame.args[1]
    local num_bananas = frame.args['pisang']
    local num_apples = frame.args['apel']
    local num_cherries = frame.args['ceri']
    
    local result = name .. ' memiliki:'
    if num_bananas then result = result .. ' ' .. num_bananas .. ' sikat pisang' end
    if num_apples then result = result .. ' ' .. num_apples .. ' apel' end
    if num_cherries then result = result .. ' ' .. num_cherries .. ' biji ceri' end
    return result
end

-- Lelaran argumen, digunakan seperti: {{#invoke:Pisang|buah_khas|nenas=10|kiwi=5}}
function p.buah_khas(frame)
    local result = 'Saya ada:'
    for name, value in pairs(frame.args) do
        result = result .. ' ' .. value .. ' ' .. name
    end
    return result
end

-- Lelaran argumen dengan argumen mandatori berasingan 
-- Digunakan seperti: {{#invoke:PisangArgs|buah_khas_2|Sudin|nenas=10|kiwi=5}}
function p.buah_khas_2(frame)
    local name = frame.args[1]
    local result = name .. ' memiliki:'
    for name, value in pairs(frame.args) do
        if name ~= 1 then
            result = result .. ' ' .. value .. ' ' .. name
        end
    end
    return result
end

return p