webmcp
annotate libraries/nihil/nihil.lua @ 4:5e32ef998acf
Version 1.0.4
ui.link{...} with POST target can now be parameterized with BOTH content and text to allow HTML content for JavaScript browsers and a text-only version for accessiblity
Changes related to database selectors:
- Support for row-based locking
- New method :count(), caching and returning the number of rows, which WOULD have been returned by :exec()
- Bugfix: WHERE and HAVING expressions are now enclosed in parenthesis to avoid problems with operator precedence
ui.script{...} now supports external .js files
Changes in langtool.lua to cope with escaped new-line chars (\n)
ui.link{...} with POST target can now be parameterized with BOTH content and text to allow HTML content for JavaScript browsers and a text-only version for accessiblity
Changes related to database selectors:
- Support for row-based locking
- New method :count(), caching and returning the number of rows, which WOULD have been returned by :exec()
- Bugfix: WHERE and HAVING expressions are now enclosed in parenthesis to avoid problems with operator precedence
ui.script{...} now supports external .js files
Changes in langtool.lua to cope with escaped new-line chars (\n)
author | jbe/bsw |
---|---|
date | Fri Dec 25 12:00:00 2009 +0100 (2009-12-25) |
parents | 9fdfb27f8e67 |
children | 3d43a5cf17c1 |
rev | line source |
---|---|
jbe/bsw@0 | 1 #!/usr/bin/env lua |
jbe/bsw@0 | 2 |
jbe/bsw@0 | 3 local error = error |
jbe/bsw@0 | 4 local getmetatable = getmetatable |
jbe/bsw@0 | 5 local module = module |
jbe/bsw@0 | 6 local rawset = rawset |
jbe/bsw@0 | 7 local setmetatable = setmetatable |
jbe/bsw@0 | 8 |
jbe/bsw@0 | 9 module(...) |
jbe/bsw@0 | 10 |
jbe/bsw@0 | 11 metatable = { |
jbe/bsw@0 | 12 __tostring = function(self) |
jbe/bsw@0 | 13 return "nil" .. self[1] |
jbe/bsw@0 | 14 end, |
jbe/bsw@0 | 15 __newindex = function() |
jbe/bsw@0 | 16 error("Objects representing nil are immutable.") |
jbe/bsw@0 | 17 end |
jbe/bsw@0 | 18 } |
jbe/bsw@0 | 19 |
jbe/bsw@0 | 20 nils = setmetatable({}, { |
jbe/bsw@0 | 21 __mode = "v", |
jbe/bsw@0 | 22 __index = function(self, level) |
jbe/bsw@0 | 23 if level > 0 then |
jbe/bsw@0 | 24 local result = setmetatable({ level }, metatable) |
jbe/bsw@0 | 25 rawset(self, level, result) |
jbe/bsw@0 | 26 return result |
jbe/bsw@0 | 27 end |
jbe/bsw@0 | 28 end, |
jbe/bsw@0 | 29 __newindex = function() |
jbe/bsw@0 | 30 error("Table is immutable.") |
jbe/bsw@0 | 31 end |
jbe/bsw@0 | 32 }) |
jbe/bsw@0 | 33 |
jbe/bsw@0 | 34 function lift(value) |
jbe/bsw@0 | 35 if value == nil then |
jbe/bsw@0 | 36 return nils[1] |
jbe/bsw@0 | 37 elseif getmetatable(value) == metatable then |
jbe/bsw@0 | 38 return nils[value[1]+1] |
jbe/bsw@0 | 39 else |
jbe/bsw@0 | 40 return value |
jbe/bsw@0 | 41 end |
jbe/bsw@0 | 42 end |
jbe/bsw@0 | 43 |
jbe/bsw@0 | 44 function lower(value) |
jbe/bsw@0 | 45 if value == nil then |
jbe/bsw@0 | 46 error("Cannot lower nil.") |
jbe/bsw@0 | 47 elseif getmetatable(value) == metatable then |
jbe/bsw@0 | 48 return nils[value[1]-1] |
jbe/bsw@0 | 49 else |
jbe/bsw@0 | 50 return value |
jbe/bsw@0 | 51 end |
jbe/bsw@0 | 52 end |