Módulo:Yesno/doc
Esta es la página de documentación de Módulo:Yesno
Este módulo ofrece un tratamiento consistente para procesar entradas booleanas o strings del estilo. Mientras que Lua permite los valores booleanos true
y false
, las plantillas de wikicódigo solo los pueden expresar con textos como "sí", "no", etc. Este módulo procesa estos tipos de strings y los convierte en un booleano que Lua pueda procesar. También retorna nil
si recibe nil
, para permitir la distinción entre nil
y false
. El módulo también acepta otras estructuras de Lua como entrada, e.g. booleanos, números, tablas, y funciones. Se puede especificar un valor por defecto para retornar si recibe una entrada que no se reconoce como booleano o nil
.
Sintaxis
<syntaxhighlight lang="lua">yesno(value, default)</syntaxhighlight>
value
es el valor a evaluar. Una entrada booleana o del estilo (ver más abajo) siempre evalúa a true
o false
, y nil
siempre evalúa a nil
. Otros valores evalúan a default
.
Uso
Primero, carga el módulo. Nótese que solo puede ser cargado desde otros módulos de Lua, no desde páginas normales de la wiki. Para el resto de casos se puede utilizar {{yesno}}
en su lugar.
<syntaxhighlight lang="lua"> local yesno = require('Módulo:Yesno') </syntaxhighlight>
Algunos valores de entrada siempre retornan true
, y otros siempre retornan false
. nil
siempre retorna nil
.
<syntaxhighlight lang="lua"> -- Estos siempre retornan true: yesno('yes') yesno('y') yesno('true') yesno('t') yesno('1') yesno(1) yesno(true) yesno('si') yesno('sí') yesno('s') yesno('verdad')
-- Estos siempre retornan false: yesno('no') yesno('n') yesno('false') yesno('f') yesno('0') yesno(0) yesno(false) yesno('falso')
-- Un valor nil siempre retorna nil: yesno(nil) </syntaxhighlight>
Los strings se pasan a minúsculas antes de hacer las comprobaciones:
<syntaxhighlight lang="lua"> -- Estos siempre retornan true: yesno('Yes') yesno('YES') yesno('yEs') yesno('Y') yesno('tRuE') yesno('sI') yesno('Sí') yesno('S') yesno('veRdaD')
-- Estos siempre retornan false: yesno('No') yesno('NO') yesno('nO') yesno('N') yesno('fALsE') yesno('fALsO') </syntaxhighlight>
Puedes especificar un valor por defecto para el caso en que yesno recibe una entrada no especificada anteriormente. Si no introduces un valor por defecto el módulo devolverá nil
en estos casos.
<syntaxhighlight lang="lua"> -- Estos retornan nil: yesno('foo') yesno({}) yesno(5) yesno(function() return 'Esto es una función.' end)
-- Estos retornan true: yesno('foo', true) yesno({}, true) yesno(5, true) yesno(function() return 'Esto es una función.' end, true)
-- Estos retornan "bar": yesno('foo', 'bar') yesno({}, 'bar') yesno(5, 'bar') yesno(function() return 'Esto es una función.' end, 'bar') </syntaxhighlight>
Nótese que la cadena vacía también funciona igual: <syntaxhighlight lang="lua"> yesno() -- Retorna nil. yesno(, true) -- Retorna true. yesno(, 'bar') -- Retorna "bar". </syntaxhighlight>