Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Yesno: Difference between revisions

Content added Content deleted
(use parent args again)
(better code for getting args)
Line 12: Line 12:
-- Allow arguments to override defaults. Arguments are taken from
-- Allow arguments to override defaults. Arguments are taken from
-- the parent frame; other arguments are ignored.
-- the parent frame; other arguments are ignored.
local args;
for k,v in pairs(frame:getParent().args) do
if frame == mw.getCurrentFrame() then
-- We're being called via #invoke. If the invoking template passed any args, use
-- them. Otherwise, use the args that were passed into the template.
args = frame:getParent().args;
for k, v in pairs(frame.args) do
args = frame.args;
break
end
else
-- We're being called from another module or from the debug console, so assume
-- the args are passed in directly.
args = frame;
end
for k,v in pairs(args) do
retvals[k] = v
retvals[k] = v
end
end


val = frame:getParent().args[1]
val = args[1]


-- First deal with the case if val is nil, then deal with other cases.
-- First deal with the case if val is nil, then deal with other cases.
Line 26: Line 41:
val = val:match'^%s*(.*%S)' or '' -- Trim whitespace.
val = val:match'^%s*(.*%S)' or '' -- Trim whitespace.


-- Cases are ordered by (probable) likelihood of use.
if val == '' then
if val == '' then
return retvals['blank'] or retvals['no']
return retvals['blank'] or retvals['no']
elseif val == 'yes' then
elseif val == 'n' or val == 'no' or tonumber(val) == 0 then
return retvals['yes']
elseif val == 'no' then
return retvals['no']
return retvals['no']
elseif val == 'y' then
elseif val == 'y' or val == 'yes' or tonumber(val) == 1 then
return retvals['yes']
return retvals['yes']
elseif val == 'n' then
return retvals['no']
elseif val == '¬' then
elseif val == '¬' then
return retvals['¬']
return retvals['¬']
elseif tonumber(val) == 1 then
return retvals['yes']
elseif tonumber(val) == 0 then
return retvals['no']
else
else
return retvals['def'] or retvals['yes']
return retvals['def'] or retvals['yes']
Cookies help us deliver our services. By using our services, you agree to our use of cookies.