Module:YesNo

From The Largs to Largs Grand Tour
Jump to navigation Jump to search

Documentation for this module may be created at Module:YesNo/doc

local p = {}

function p.yesno(val)
	if val == nil then
		return nil
	end

	if type(val) == 'boolean' then
		return val
	end

	if type(val) == 'number' then
		return val ~= 0
	end

	if type(val) ~= 'string' then
		return nil
	end

	val = mw.ustring.lower(val)

	if val == '' then
		return nil
	end

	if val == 'yes' or val == 'y' or val == 'true' or val == 't' or val == '1' then
		return true
	end

	if val == 'no' or val == 'n' or val == 'false' or val == 'f' or val == '0' then
		return false
	end

	return nil
end

return p