Module:Yesno: Difference between revisions

From Path of Exile 2 Wiki
Jump to navigation Jump to search
en>ATDT
(Trim space)
en>ATDT
(Add inline comments)
Line 3: Line 3:
function p.yesno( frame )
function p.yesno( frame )
   
   
    -- defaults
     local retvals = {
     local retvals = {
         yes  = "yes",
         yes  = "yes",
Line 9: Line 10:
     }
     }
   
   
    -- Allow arguments to override defaults.
    -- 'any' tracks the presence of any arguments at all.
     local any = false
     local any = false
     for k,v in pairs( frame.args ) do
     for k,v in pairs( frame.args ) do
Line 17: Line 20:
     val = frame.args[1]
     val = frame.args[1]
   
   
    -- According to the template docs, the input should be considered nil
    -- only when no params were provided. If any params at all were present,
    -- the value must be considered blank. A bit weird, if you ask me.
     if (val == nil and not any) or val == '¬' then
     if (val == nil and not any) or val == '¬' then
         return retvals['¬']
         return retvals['¬']
     end
     end
   
   
     val = (val or ''):lower()
     val = (val or ''):lower()         -- Coerce to blank if nil; make lowercase.
     val = val:match'^%s*(.*%S)' or ''
     val = val:match'^%s*(.*%S)' or '' -- Trim whitespace.
   
   
     if val == '' then
     if val == '' then

Revision as of 06:16, 3 March 2013

Module documentation[view] [edit] [history] [purge]


This is a meta module.

This module is meant to be used only by other modules. It should not be invoked in wikitext.

This module was adapted from Module:Yesno on Wikipedia.
Adaptation is noted for reference and attribution only. This module may differ from the original in function or in usage. The documentation on Wikipedia may be helpful in understanding this module.
Lua error in Module:Category_handler at line 76: attempt to call upvalue 'yesno' (a table value).


local p = {}
 
function p.yesno( frame )
 
    -- defaults
    local retvals = {
        yes   = "yes",
        no    = "",
        ["¬"] = ""
    }
 
    -- Allow arguments to override defaults.
    -- 'any' tracks the presence of any arguments at all.
    local any = false
    for k,v in pairs( frame.args ) do
        any = true
        retvals[k] = v
    end
 
    val = frame.args[1]
 
    -- According to the template docs, the input should be considered nil
    -- only when no params were provided. If any params at all were present,
    -- the value must be considered blank. A bit weird, if you ask me.
    if (val == nil and not any) or val == '¬' then
        return retvals['¬']
    end
 
    val = (val or ''):lower()          -- Coerce to blank if nil; make lowercase.
    val = val:match'^%s*(.*%S)' or ''  -- Trim whitespace.
 
    if val == '' then
        return retvals['blank'] ~= nil and retvals['blank'] or retvals['no']
    elseif val == 'n' or val == 'no'  or val == '0' then
        return retvals['no']
    elseif val == 'y' or val == 'yes' or val == '1' or retvals['def'] == nil then
        return retvals['yes']
    else
        return retvals['def']
    end
end
 
return p