Navigation menu

Module:Yesno: Difference between revisions

From The Kodiak Republic Wiki

better code for getting args
(use parent args again)
(better code for getting args)
Line 12:
-- Allow arguments to override defaults. Arguments are taken from
-- 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:getParent().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
end
 
val = frame:getParent().args[1]
 
-- First deal with the case if val is nil, then deal with other cases.
Line 26 ⟶ 41:
val = val:match'^%s*(.*%S)' or '' -- Trim whitespace.
 
-- Cases are ordered by (probable) likelihood of use.
if val == '' then
return retvals['blank'] or retvals['no']
elseif val == 'yesn' or val == 'no' or tonumber(val) == 0 then
return retvals['yes']
elseif val == 'no' then
return retvals['no']
elseif val == 'y' or val == 'yes' or tonumber(val) == 1 then
return retvals['yes']
elseif val == 'n' then
return retvals['no']
elseif val == '¬' then
return retvals['¬']
elseif tonumber(val) == 1 then
return retvals['yes']
elseif tonumber(val) == 0 then
return retvals['no']
else
return retvals['def'] or retvals['yes']
Cookies help us deliver our services. By using our services, you agree to our use of cookies.