Module:Yesno: Difference between revisions

Content added Content deleted
(return nil values as nil)
(stop making the default "default" value true, as we run into problems if you need to distinguish between false and nil)
Line 9: Line 9:
elseif val == true or val == 'yes' or val == 'y' or val == 'true' or tonumber(val) == 1 then
elseif val == true or val == 'yes' or val == 'y' or val == 'true' or tonumber(val) == 1 then
return true
return true
elseif default ~= nil then
return default
else
else
return true
return default
end
end
end
end

Revision as of 14:21, 26 September 2013

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

-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
return function (val, default)
    val = type(val) == 'string' and mw.ustring.lower(val) or val -- put in lower case
    if val == nil then
        return nil
    elseif val == false or val == 'no' or val == 'n' or val == 'false' or tonumber(val) == 0 then
        return false
    elseif val == true or val == 'yes' or val == 'y' or val == 'true' or tonumber(val) == 1 then
        return true
    else
        return default
    end
end
Cookies help us deliver our services. By using our services, you agree to our use of cookies.