Modul:PenselArgs

Daripada Wikibooks

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

-- Modul contoh untuk menunjukkan bagaimana mencapai argumen
-- Maklumat lanjut tentang objek Frame dapat dilihat di http://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Frame_object
-- Ujian unit di Modul:PenselArgs/ujian

local p = {}

-- Tiada argumen, digunakan seperti:  {{#invoke:PenselArgs|helo_dunia}}
function p.helo_dunia()
	return "Helo, dunia!"
end

-- Satu argumen, digunakan seperti: {{#invoke:PenselArgs|helo|Mat}} 
function p.helo(frame)
	local name = frame.args[1] -- dalam contoh ini, args[1] ialah kata Mat 
	return "Helo, " .. name .. "!" -- .. name .. diganti oleh kata Mat
end

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

-- Argumen yang diberikan nama, digunakan seperti: {{#invoke:PenselArgs|bilang_buah|pisang=5|ciku=3}}
function p.bilang_buah(frame)
	local bil_pisang = frame.args.pisang
	local bil_ciku = frame.args.ciku
	return 'Saya ada ' .. bil_pisang .. ' sikat pisang dan ' .. bil_ciku .. ' biji ciku'
end

-- Mencampur arg biasa dengan arg bernama dan arg bernama pilihan
-- Digunakan seperti: {{#invoke:PenselArgs|ada_buah|Upin|pisang=5|belimbing=7}}
function p.ada_buah(frame)
	local nama = frame.args[1]
	local bil_pisang = frame.args.pisang
	local bil_ciku = frame.args.ciku
	local bil_belimbing = frame.args.belimbing
	
	local hasil = nama .. ' memiliki:'
	if bil_pisang then hasil = hasil .. ' ' .. bil_pisang .. ' pisang' end
	if bil_ciku then hasil = hasil .. ' ' .. bil_ciku .. ' ciku' end
	if bil_belimbing then hasil = hasil .. ' ' .. bil_belimbing .. ' belimbing' end
	return hasil
end

-- Pelelaran arg, digunakan seperti: {{#invoke:PenselArgs|khas_buah|nenas=10|limau=5}}
function p.khas_buah(frame)
	local hasil = 'Ipin ada:'
	for name, value in pairs(frame.args) do
		hasil = hasil .. ' ' .. value .. ' ' .. name
	end
	return hasil
end

-- Pelelaran arg dengan arg terpisah yang wajib
-- Digunakan seperti: {{#invoke:PenselArgs|khas_buah_2|'Kak Ros'|nenas=10|limau=5}}
function p.khas_buah_2(frame)
	local nama = frame.args[1]
	local hasil = nama .. ' memakan:'
	for nama, nilai in pairs(frame.args) do
		if nama ~= 1 then
			hasil = hasil .. ' ' .. nilai .. ' ' .. nama
		end
	end
	return hasil
end

return p