webmcp

view framework/env/parse/boolean.lua @ 405:c5f9a1b2f225

Updated year of copyright notice
author jbe
date Wed Jan 06 02:54:45 2016 +0100 (2016-01-06)
parents 9fdfb27f8e67
children
line source
1 function parse.boolean(str, dest_type, options)
2 if dest_type ~= atom.boolean then
3 error("parse.boolean(...) can only return booleans, but a different destination type than atom.boolean was given.")
4 end
5 local options = options or {}
6 local trimmed_str = string.match(str or "", "^%s*(.-)%s*$")
7 if options.true_as or options.false_as or options.nil_as then
8 if trimmed_str == options.true_as then
9 return true
10 elseif trimmed_str == options.false_as then
11 return false
12 elseif trimmed_str == options.nil_as or trimmed_str == "" then
13 return nil
14 else
15 error("Boolean value not recognized.")
16 end
17 else
18 local char = string.upper(string.sub(trimmed_str, 1, 1))
19 if char == "1" or char == "T" or char == "Y" then
20 return true
21 elseif char == "0" or char == "F" or char == "N" then
22 return false
23 elseif char == "" then
24 return nil
25 else
26 error("Boolean value not recognized.")
27 end
28 end
29 end

Impressum / About Us