Actions

Module

Difference between revisions of "Yesno"

From Unofficial Stationeers Wiki

(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
+
     else
 
         return default
 
         return default
    else
 
        return true
 
 
     end
 
     end
 
end
 
end

Revision as of 08: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