Modifications
aucun résumé de modification
Ce module propose une fonction cohérente pour transformer des valeur ou chaine en booléen.
== Utilisation ==
Le wikicode ne permet pas de saisir directement des valeur booléenne, seulement des chaine type « oui » ou « non ». Ce module les évalue et détermine une valeur booléenne <code>true</code> ou <code>false</code> que lua pourra utiliser. Il retourne <code>nil</code> en l'abscence de paramètre, pour permettre la distiction entre <code>nil</code> et <code>false</code>. Lorsque ce paramètre a une valeur imprévue, le module retourne la valeur par défaut ou <code>nil</code>.
== Syntaxe ==
<source lang="lua">yesno(valeur, défaut, défautVide)</source>
* <code>valeur</code> – est la valeur à tester.
* <code>défaut</code> – valeur par défaut pour les valeurs qui ne sont ni assimilé à des booléens ni <code>nil</code>.
* <code>défautVide</code> – si ce paramètre n'est pas <code>nil</code> ce sera la valeur par défaut pour les chaines vides ou uniquement composées d'espaces, sauts de ligne....
== Exemples ==
Il faut commencer par charger le module. Il ne peut être appelé que depuis un autre module Lua, il ne peut pas être appelé directement par un modèle.
<source lang="lua">
local yesno = require('Module:Yesno')
</source>
Certaines valeurs retournent toujours <code>true</code>, d'autres valeurs retournent toujours <code>false</code>. La valeur <code>nil</code> retourne toujours <code>nil</code>.
<source lang="lua">
-- Ces valeurs retournent toujours true :
yesno('oui')
yesno('yes')
yesno('y')
yesno('true')
yesno('1')
yesno(1)
yesno(true)
-- Ces valeurs retournent toujours false :
yesno('non')
yesno('no')
yesno('n')
yesno('false')
yesno('0')
yesno(0)
yesno(false)
-- Une valeur nil retourne nil :
yesno(nil)
</source>
Les chaines sont converties en minuscules avant d'être évaluées :
<source lang="lua">
-- Ces valeurs retournent toujours true :
yesno('Oui')
yesno('OUI')
yesno('oUi')
yesno('tRuE')
-- Ces valeurs retournent toujours false :
yesno('Non')
yesno('NON')
yesno('nOn')
yesno('fALsE')
</source>
Une valeur par défaut peut être spécifiée pour les valeurs autres que celle listée ci-dessus. Si aucune valeur par défaut n'est fournie le module retourne <code>nil</code> pour ces valeurs.
<source lang="lua">
-- Ces valeurs retournent nil :
yesno('foo')
yesno({})
yesno(5)
yesno(function() return 'Ceci est une fonction.' end)
-- Ces valeurs retournent true :
yesno('foo', true)
yesno({}, true)
yesno(5, true)
yesno(function() return 'This is a function.' end, true)
-- Ces valeurs retournent "bar" :
yesno('foo', 'bar')
yesno({}, 'bar')
yesno(5, 'bar')
yesno(function() return 'This is a function.' end, 'bar')
</source>
Une chaine vide est évalué à la valeur du troisième paramètre s'il est défini, sinon à la valeur par défaut.
<source lang="lua">
yesno('') -- Retourne nil.
yesno('', true) -- Retourne true.
yesno('', true, nil) -- Retourne true.
yesno('', true, false) -- Retourne false.
yesno('', 'foo', 'bar') -- Retourne 'bar'.
</source>
Attention, cette dernière fonctionnalité est différente du module présent sur [[:en:]] qui n'a qu'une valeur par défaut.
<includeonly>
{{Projet Scribunto}}
[[Catégorie:Méta-module]]
</includeonly>
<noinclude>
[[Catégorie:Documentation de module]]
</noinclude>
== Utilisation ==
Le wikicode ne permet pas de saisir directement des valeur booléenne, seulement des chaine type « oui » ou « non ». Ce module les évalue et détermine une valeur booléenne <code>true</code> ou <code>false</code> que lua pourra utiliser. Il retourne <code>nil</code> en l'abscence de paramètre, pour permettre la distiction entre <code>nil</code> et <code>false</code>. Lorsque ce paramètre a une valeur imprévue, le module retourne la valeur par défaut ou <code>nil</code>.
== Syntaxe ==
<source lang="lua">yesno(valeur, défaut, défautVide)</source>
* <code>valeur</code> – est la valeur à tester.
* <code>défaut</code> – valeur par défaut pour les valeurs qui ne sont ni assimilé à des booléens ni <code>nil</code>.
* <code>défautVide</code> – si ce paramètre n'est pas <code>nil</code> ce sera la valeur par défaut pour les chaines vides ou uniquement composées d'espaces, sauts de ligne....
== Exemples ==
Il faut commencer par charger le module. Il ne peut être appelé que depuis un autre module Lua, il ne peut pas être appelé directement par un modèle.
<source lang="lua">
local yesno = require('Module:Yesno')
</source>
Certaines valeurs retournent toujours <code>true</code>, d'autres valeurs retournent toujours <code>false</code>. La valeur <code>nil</code> retourne toujours <code>nil</code>.
<source lang="lua">
-- Ces valeurs retournent toujours true :
yesno('oui')
yesno('yes')
yesno('y')
yesno('true')
yesno('1')
yesno(1)
yesno(true)
-- Ces valeurs retournent toujours false :
yesno('non')
yesno('no')
yesno('n')
yesno('false')
yesno('0')
yesno(0)
yesno(false)
-- Une valeur nil retourne nil :
yesno(nil)
</source>
Les chaines sont converties en minuscules avant d'être évaluées :
<source lang="lua">
-- Ces valeurs retournent toujours true :
yesno('Oui')
yesno('OUI')
yesno('oUi')
yesno('tRuE')
-- Ces valeurs retournent toujours false :
yesno('Non')
yesno('NON')
yesno('nOn')
yesno('fALsE')
</source>
Une valeur par défaut peut être spécifiée pour les valeurs autres que celle listée ci-dessus. Si aucune valeur par défaut n'est fournie le module retourne <code>nil</code> pour ces valeurs.
<source lang="lua">
-- Ces valeurs retournent nil :
yesno('foo')
yesno({})
yesno(5)
yesno(function() return 'Ceci est une fonction.' end)
-- Ces valeurs retournent true :
yesno('foo', true)
yesno({}, true)
yesno(5, true)
yesno(function() return 'This is a function.' end, true)
-- Ces valeurs retournent "bar" :
yesno('foo', 'bar')
yesno({}, 'bar')
yesno(5, 'bar')
yesno(function() return 'This is a function.' end, 'bar')
</source>
Une chaine vide est évalué à la valeur du troisième paramètre s'il est défini, sinon à la valeur par défaut.
<source lang="lua">
yesno('') -- Retourne nil.
yesno('', true) -- Retourne true.
yesno('', true, nil) -- Retourne true.
yesno('', true, false) -- Retourne false.
yesno('', 'foo', 'bar') -- Retourne 'bar'.
</source>
Attention, cette dernière fonctionnalité est différente du module présent sur [[:en:]] qui n'a qu'une valeur par défaut.
<includeonly>
{{Projet Scribunto}}
[[Catégorie:Méta-module]]
</includeonly>
<noinclude>
[[Catégorie:Documentation de module]]
</noinclude>