Módulo:Yesno/doc

< Módulo:Yesno
Revisão de 12h41min de 18 de abril de 2022 por Patrícia Ferreira (discussão | contribs) (Criou página com '<includeonly>{{Alto uso|30000}}</includeonly> <!-- Categorias no final desta página e links para outros idiomas no Wikidata --> Este módulo fornece uma interface consistent...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

Esta é a página de documentação para Módulo:Yesno


Este módulo fornece uma interface consistente para o processamento de strings de entrada booleanas ou de tipo booleano. É um módulo para ser usado por outros módulos, não independentemente. Enquanto Lua permite os valores booleanos true e false, predefinições em código wiki só podem expressar valores booleanos através de strings tais como "sim", "não", etc. Este módulo processa esse tipo de strings e converte-as em entradas booleanas para que Lua possa processá-las. Ele também retorna valores nil como nil, para permitir que haja distinção entre nil e false. O módulo também aceita outras estruturas em Lua como entrada, por exemplo booleanos, números, tabelas, e funções. É possível especificar um valor padrão a ser retornado em todos os casos.

Sintaxe[editar código-fonte]

<syntaxhighlight lang="lua">yesno(valor, padrão)</syntaxhighlight>

valor é o valor a ser testado. Entradas booleanas ou de tipo booleano (ver abaixo) são sempre avaliadas como true ou false, e valores nil sempre são avaliados como nil. Outros valores são avaliados como padrão.

Uso[editar código-fonte]

Primeiro, carrega-se o módulo. Note que só pode ser carregado a partir de outros módulos feitos em Lua, não de páginas wiki em outros domínios, como predefinições, domínio principal e/ou páginas de usuário; Para essas, a predefinição {{yesno}} pode servir como substitutivo. Para carregar o módulo, utiliza-se a seguinte linha de comando:

<syntaxhighlight lang="lua">local yesno = require('Module:Yesno')</syntaxhighlight>

Alguns valores de entrada sempre retornam true, e alguns sempre retornam false. Valores nil sempre retornam nil.

<syntaxhighlight lang="lua"> -- Estes sempre retornam true: yesno('sim') yesno('verdadeiro') yesno('yes') yesno('y') yesno('true') yesno('1') yesno(1) yesno(true)

-- Estes sempre retornam false: yesno('não') yesno('falso') yesno('no') yesno('n') yesno('false') yesno('0') yesno(0) yesno(false)

-- Valores nil sempre retornam nil: yesno(nil) </syntaxhighlight>

Valores string são convertidos para letras minúsculas antes de serem testados:

<syntaxhighlight lang="lua"> -- Estes sempre retornam true: yesno('Sim') yesno('SIM') yesno('sIm') yesno('vErDaDeIrO')

-- Estes sempre retornam false: yesno('Não') yesno('NÃO') yesno('nÃO') yesno('fALsO') </syntaxhighlight>

É possível especificar um valor padrão para o caso de yesno receber como entrada algo que não esteja listado acima. Se não for fornecido um valor padrão, o módulo retornará nil para tais entradas.

<syntaxhighlight lang="lua"> -- Estes retornam nil: yesno('teste') yesno({}) yesno(5) yesno(function() return 'Esta é uma função.' end)

-- Estes retornam true: yesno('teste', true) yesno({}, true) yesno(5, true) yesno(function() return 'Esta é uma função.' end, true)

-- Estes retornam "padrão": yesno('teste', 'padrão') yesno({}, 'padrão') yesno(5, 'padrão') yesno(function() return 'Esta é uma função.' end, 'padrão') </syntaxhighlight>

Note que a string vazia também funciona deste modo: <syntaxhighlight lang="lua"> yesno() -- Retorna nil. yesno(, true) -- Retorna true. yesno(, 'padrão') -- Retorna "padrão". </syntaxhighlight>

Embora a string vazia geralmente seja avaliada como false em código wiki, ela é avaliada como true em Lua. Este módulo prefere o comportamento em Lua em vez do comportamento em código wiki. Se para o seu módulo for importante tratar strings vazias como false, você precisará remover os argumentos vazios em um estágio anterior do processamento.

Testes unitários[editar código-fonte]

Abaixo estão listados testes unitários deste módulo, de modo a garantir o funcionamento do módulo em todos os casos que ele se propõe a cobrir e que ao ser atualizado ou modificado, continue a garantir seu funcionamento integral.

Erro em Lua: Não é possível criar o processo: proc_open(/dev/null): failed to open stream: Operation not permitted