Esta wiki foi não teve nenhuma edição nem entrada nos registos durante os últimos 45 dias e foi marcada automaticamente como inativa. Se quiser impedir a wiki de ser fechada mostre alguns sinais de atividade. Se não houver sinais de utilização da wiki nos próximos 15 dias, ela será fechada de acordo com as normas de dormência (que todos os fundadores de wikis aceitam ao pedir uma wiki). Se a wiki for fechada e ninguém a reabrir nos próximos 135 dias, ela será candidata para eliminação. Nota: se é burocrata da wiki, pode ir a Special:ManageWiki e desmarcar "inativa" por si próprio.
De Família Corsi
Ir para navegação Ir para pesquisar

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]

yesno(valor, padrão)

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]

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:

local yesno = require('Module:Yesno')

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

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

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

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

É 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.

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

Note que a string vazia também funciona deste modo:

yesno('')        -- Retorna nil.
yesno('', true)  -- Retorna true.
yesno('', 'padrão') -- Retorna "padrão".

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]

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.

Todos os testes passaram.

test_nil
Texto Esperado Atual
Predefinição:Sim nil nil nil
Predefinição:Sim 'teste' nil nil
Predefinição:Sim {} nil nil
Predefinição:Sim 5 nil nil
Predefinição:Sim '5' nil nil
Predefinição:Sim function() return 'Esta é uma função.' end nil nil
Predefinição:Sim '' nil nil
test_no
Texto Esperado Atual
Predefinição:Sim 'não' false false
Predefinição:Sim 'Não' false false
Predefinição:Sim 'NÃO' false false
Predefinição:Sim 'nÃo' false false
Predefinição:Sim 'falso' false false
Predefinição:Sim 'fAlSo' false false
Predefinição:Sim 'false' false false
Predefinição:Sim false false false
Predefinição:Sim 'f' false false
Predefinição:Sim 'no' false false
Predefinição:Sim 'n' false false
Predefinição:Sim '0' false false
Predefinição:Sim 0 false false
Predefinição:Sim 'teste'
default = false
false false
Predefinição:Sim {}
default = false
false false
Predefinição:Sim 5
default = false
false false
Predefinição:Sim function() return 'Esta é uma função.' end
default = false
false false
Predefinição:Sim ''
default=false
false false
test_padrao
Texto Esperado Atual
Predefinição:Sim 'teste'
default='padrão'
padrão padrão
Predefinição:Sim {}
default='padrão'
padrão padrão
Predefinição:Sim 5
default='padrão'
padrão padrão
Predefinição:Sim '5'
default='padrão'
padrão padrão
Predefinição:Sim function() return 'Esta é uma função.' end
default='padrão'
padrão padrão
Predefinição:Sim ''
default='padrão'
padrão padrão
test_yes
Texto Esperado Atual
Predefinição:Sim 'sim' true true
Predefinição:Sim 'Sim' true true
Predefinição:Sim 'SIM' true true
Predefinição:Sim 'sIm' true true
Predefinição:Sim 'verdadeiro' true true
Predefinição:Sim 'vErDaDeIrO' true true
Predefinição:Sim 'yes' true true
Predefinição:Sim 'y' true true
Predefinição:Sim 'true' true true
Predefinição:Sim true true true
Predefinição:Sim 't' true true
Predefinição:Sim '1' true true
Predefinição:Sim 1 true true
Predefinição:Sim 'teste'
default = true
true true
Predefinição:Sim {}
default = true
true true
Predefinição:Sim 5
default = true
true true
Predefinição:Sim function() return 'Esta é uma função.' end
default = true
true true
Predefinição:Sim ''
default=true
true true



Cookies nos ajudam a entregar nossos serviços. Ao usar nossos serviços, você concorda com o uso de cookies.