webmcp
view framework/env/parse/boolean.lua @ 2:72860d232f32
Version 1.0.2
Fixed bug with explicit garbage collection (requests > 256kB caused an error)
Views prefixed with an underscore can't be called externally
ui.paginate now displays the last page, if the selected page number is too high.
Fixed bug with explicit garbage collection (requests > 256kB caused an error)
Views prefixed with an underscore can't be called externally
ui.paginate now displays the last page, if the selected page number is too high.
| author | jbe/bsw | 
|---|---|
| date | Thu Dec 10 12:00:00 2009 +0100 (2009-12-10) | 
| 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
