webmcp
view framework/env/parse/boolean.lua @ 31:1cd9e69b85cb
add execute.load_chunk(args)
load_chunk loads the content of a lua file and returns the code.
It can construct the path name easily so you can put helper code in
seperate files for DRYness.
load_chunk loads the content of a lua file and returns the code.
It can construct the path name easily so you can put helper code in
seperate files for DRYness.
author | Daniel Poelzleithner <poelzi@poelzi.org> |
---|---|
date | Tue Oct 05 02:34:04 2010 +0200 (2010-10-05) |
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