The wiki has moved!

Visit the new wiki at stationeers-wiki.com The old wiki here at legacy.stationeers-wiki.com will sunset eventually.

Edits made after the 7th of March 6PM EST were NOT carried over to the new server as previously announced right here in this box.

 Actions

Module

Difference between revisions of "Yesno"

From Unofficial Stationeers Wiki

(fix logic for the case where the first positional parameter is "¬")
(removing code that's no longer used)
Line 23: Line 23:
 
         args = pframe.args
 
         args = pframe.args
 
         for k,v in pairs(args) do
 
         for k,v in pairs(args) do
            any = true
 
 
             retvals[k] = v
 
             retvals[k] = v
 
         end
 
         end
Line 35: Line 34:
 
     end
 
     end
  
     val = val:lower()          -- Coerce to blank if nil; make lowercase.
+
     val = val:lower()          -- Make lowercase.
 
     val = val:match'^%s*(.*%S)' or ''  -- Trim whitespace.
 
     val = val:match'^%s*(.*%S)' or ''  -- Trim whitespace.
  

Revision as of 05:29, 23 March 2013

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

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 args = frame.args
    local any = false
    for k,v in pairs(args) do
        any = true
        retvals[k] = v
    end
    -- If there are no arguments, try and get them from the parent frame.
    if any == false then
        local pframe = frame:getParent()
        args = pframe.args
        for k,v in pairs(args) do
            retvals[k] = v
        end
    end    

    val = args[1]

    -- First deal with the case if val is nil or "¬", then deal with other cases.
    if val == nil or val == '¬' then
        return retvals['¬']
    end

    val = val:lower()          -- Make lowercase.
    val = val:match'^%s*(.*%S)' or ''  -- Trim whitespace.

    if val == '' then
        return 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