Módulo:Yesno/doc

De El Museo de los 8 Bits
Ir a la navegación Ir a la búsqueda

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

yesno(value, default)

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.

local yesno = require('Módulo:Yesno')

Algunos valores de entrada siempre retornan true, y otros siempre retornan false. nil siempre retorna nil.

-- 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)

Los strings se pasan a minúsculas antes de hacer las comprobaciones:

-- 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')

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.

-- 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')

Nótese que la cadena vacía también funciona igual:

yesno('')        -- Retorna nil.
yesno('', true)  -- Retorna true.
yesno('', 'bar') -- Retorna "bar".