Aug SEP Oct
05
2014 2015 2016
success
fail

About this capture

COLLECTED BY

Organization: Internet Archive

The Internet Archive discovers and captures web pages through many different web crawls. At any given time several distinct crawls are running, some for months, and some every day or longer. View the web archive through the Wayback Machine.

Collection: Wide Crawl Number 13

Web Wide Crawl Number 13
TIMESTAMPS

The Wayback Machine - http://web.archive.org/web/20150905201544/https://en.wikipedia.org/wiki/Module:Yesno
 





Permanently protected module

Module:Yesno



From Wikipedia, the free encyclopedia


Jump to: navigation, search  

Documentation icon Module documentation[view] [edit] [history] [purge]

This module provides a consistent interface for processing boolean or boolean-style string input. While Lua allows the true and false boolean values, wikicode templates can only express boolean values through strings such as "yes", "no", etc. This module processes these kinds of strings and turns them into boolean input for Lua to process. It also returns nil values as nil, to allow for distinctions between nil and false. The module also accepts other Lua structures as input, i.e. booleans, numbers, tables, and functions. If it is passed input that it does not recognise as boolean or nil, it is possible to specify a default value to return.

Syntax

yesno(value, default)

value is the value to be tested. Boolean input or boolean-style input (see below) always evaluates to either trueorfalse, and nil always evaluates to nil. Other values evaluate to default.

Usage

First, load the module. Note that it can only be loaded from other Lua modules, not from normal wiki pages. For normal wiki pages you can use {{yesno}} instead.

local yesno = require('Module:Yesno')

Some input values always return true, and some always return false. nil values always return nil.

-- These always return true:
yesno('yes')
yesno('y')
yesno('true')
yesno('t')
yesno('1')
yesno(1)
yesno(true)

-- These always return false:
yesno('no')
yesno('n')
yesno('false')
yesno('f')
yesno('0')
yesno(0)
yesno(false)

-- A nil value always returns nil:
yesno(nil)

String values are converted to lower case before they are matched:

-- These always return true:
yesno('Yes')
yesno('YES')
yesno('yEs')
yesno('Y')
yesno('tRuE')

-- These always return false:
yesno('No')
yesno('NO')
yesno('nO')
yesno('N')
yesno('fALsE')

You can specify a default value if yesno receives input other than that listed above. If you don't supply a default, the module will return nil for these inputs.

-- These return nil:
yesno('foo')
yesno({})
yesno(5)
yesno(function() return 'This is a function.' end)

-- These return true:
yesno('foo', true)
yesno({}, true)
yesno(5, true)
yesno(function() return 'This is a function.' end, true)

-- These return "bar":
yesno('foo', 'bar')
yesno({}, 'bar')
yesno(5, 'bar')
yesno(function() return 'This is a function.' end, 'bar')

Note that the blank string also functions this way:

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

Although the blank string usually evaluates to false in wikitext, it evaluates to true in Lua. This module prefers the Lua behaviour over the wikitext behaviour. If treating the blank string as false is important for your module, you will need to remove blank arguments at an earlier stage of processing.

-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.

return function (val, default)
 -- If your wiki uses non-ascii characters for any of "yes", "no", etc., you
 -- should replace "val:lower()" with "mw.ustring.lower(val)" in the
 -- following line.
 val = type(val) == 'string' and val:lower() or val
 if val == nil then
  return nil
 elseif val == true 
  or val == 'yes'
  or val == 'y'
  or val == 'true'
  or val == 't'
  or tonumber(val) == 1
 then
  return true
 elseif val == false
  or val == 'no'
  or val == 'n'
  or val == 'false'
  or val == 'f'
  or tonumber(val) == 0
 then
  return false
 else
  return default
 end
end
Retrieved from "https://en.wikipedia.org/w/index.php?title=Module:Yesno&oldid=659459801" 

Categories: 
Modules subject to page protection
Lua metamodules
Hidden categories: 
Wikipedia protected modules




Navigation menu



Personal tools



Create account
Log in
 



Namespaces



Module

Talk
 


Variants  









Views



Read

View source

View history
 


More







 







Navigation




Main page
Contents
Featured content
Current events
Random article
Donate to Wikipedia
Wikipedia store
 



Interaction




Help
About Wikipedia
Community portal
Recent changes
Contact page
 



Tools




What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Wikidata item
 



Languages




Afrikaans
Akan
Ænglisc
العربية

Bân-lâm-gú

Bikol Central
Bislama
Български
Bosanski
Català
ChiShona
ChiTumbuka
Dansk
Eesti
Español
Esperanto
Euskara
فارسی
Føroyskt
Français
Gaelg
Gàidhlig


Hawai`i
Հայերեն
ि
Ido
Ilokano
Bahasa Indonesia
IsiZulu
עברית
Basa Jawa

Қазақша
ि
IsiXhosa
Kiswahili
Kongo
Kreyòl ayisyen
Latgaļu
Latviešu
Lëtzebuergesch
Magyar
Македонски

Bahasa Melayu
Nederlands

 

Norfuk / Pitkern
Norsk bokmål
ି
Oʻzbekcha/ўзбекча

ि
پنجابی
Polski
Português
Română

Scots
Shqip

Slovenščina
کوردیی ناوەندی
Српски / srpski
Srpskohrvatski / српскохрватски
Suomi
Svenska
Tagalog
ி
Татарча/tatarça



Türkmençe
Тыва дыл
Українська
اردو
Tiếng Vit


Yorùbá

Zazaki

 

Edit links
 






This page was last modified on 27 April 2015, at 10:43.

Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.
 


Privacy policy

About Wikipedia

Disclaimers

Contact Wikipedia

Developers

Mobile view
 


Wikimedia Foundation
Powered by MediaWiki