web.lua 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. local lapis = require("lapis")
  2. local db = require("lapis.db")
  3. local Model
  4. do
  5. local _obj_0 = require("lapis.db.model")
  6. Model = _obj_0.Model
  7. end
  8. local config
  9. do
  10. local _obj_0 = require("lapis.config")
  11. config = _obj_0.config
  12. end
  13. local insert
  14. do
  15. local _obj_0 = table
  16. insert = _obj_0.insert
  17. end
  18. local sort
  19. do
  20. local _obj_0 = table
  21. sort = _obj_0.sort
  22. end
  23. local min, random
  24. do
  25. local _obj_0 = math
  26. min, random = _obj_0.min, _obj_0.random
  27. end
  28. local Fortune
  29. do
  30. local _parent_0 = Model
  31. local _base_0 = { }
  32. _base_0.__index = _base_0
  33. setmetatable(_base_0, _parent_0.__base)
  34. local _class_0 = setmetatable({
  35. __init = function(self, ...)
  36. return _parent_0.__init(self, ...)
  37. end,
  38. __base = _base_0,
  39. __name = "Fortune",
  40. __parent = _parent_0
  41. }, {
  42. __index = function(cls, name)
  43. local val = rawget(_base_0, name)
  44. if val == nil then
  45. return _parent_0[name]
  46. else
  47. return val
  48. end
  49. end,
  50. __call = function(cls, ...)
  51. local _self_0 = setmetatable({}, _base_0)
  52. cls.__init(_self_0, ...)
  53. return _self_0
  54. end
  55. })
  56. _base_0.__class = _class_0
  57. if _parent_0.__inherited then
  58. _parent_0.__inherited(_parent_0, _class_0)
  59. end
  60. Fortune = _class_0
  61. end
  62. local World
  63. do
  64. local _parent_0 = Model
  65. local _base_0 = { }
  66. _base_0.__index = _base_0
  67. setmetatable(_base_0, _parent_0.__base)
  68. local _class_0 = setmetatable({
  69. __init = function(self, ...)
  70. return _parent_0.__init(self, ...)
  71. end,
  72. __base = _base_0,
  73. __name = "World",
  74. __parent = _parent_0
  75. }, {
  76. __index = function(cls, name)
  77. local val = rawget(_base_0, name)
  78. if val == nil then
  79. return _parent_0[name]
  80. else
  81. return val
  82. end
  83. end,
  84. __call = function(cls, ...)
  85. local _self_0 = setmetatable({}, _base_0)
  86. cls.__init(_self_0, ...)
  87. return _self_0
  88. end
  89. })
  90. _base_0.__class = _class_0
  91. if _parent_0.__inherited then
  92. _parent_0.__inherited(_parent_0, _class_0)
  93. end
  94. World = _class_0
  95. end
  96. local Benchmark
  97. do
  98. local _parent_0 = lapis.Application
  99. local _base_0 = {
  100. ["/"] = function(self)
  101. return {
  102. json = {
  103. message = "Hello, World!"
  104. }
  105. }
  106. end,
  107. ["/db"] = function(self)
  108. local num_queries = tonumber(self.params.queries) or 1
  109. if num_queries < 2 then
  110. local w = World:find(random(1, 10000))
  111. return {
  112. json = {
  113. id = w.id,
  114. randomNumber = w.randomnumber
  115. }
  116. }
  117. end
  118. local worlds = { }
  119. num_queries = min(500, num_queries)
  120. for i = 1, num_queries do
  121. local w = World:find(random(1, 10000))
  122. insert(worlds, {
  123. id = w.id,
  124. randomNumber = w.randomnumber
  125. })
  126. end
  127. return {
  128. json = worlds
  129. }
  130. end,
  131. ["/fortunes"] = function(self)
  132. self.fortunes = Fortune:select("")
  133. insert(self.fortunes, {
  134. id = 0,
  135. message = "Additional fortune added at request time."
  136. })
  137. sort(self.fortunes, function(a, b)
  138. return a.message < b.message
  139. end)
  140. return {
  141. layout = false
  142. }, self:html(function()
  143. raw('<!DOCTYPE HTML>')
  144. return html(function()
  145. head(function()
  146. return title("Fortunes")
  147. end)
  148. return body(function()
  149. return element("table", function()
  150. tr(function()
  151. th(function()
  152. return text("id")
  153. end)
  154. return th(function()
  155. return text("message")
  156. end)
  157. end)
  158. local _list_0 = self.fortunes
  159. for _index_0 = 1, #_list_0 do
  160. local fortune = _list_0[_index_0]
  161. tr(function()
  162. td(function()
  163. return text(fortune.id)
  164. end)
  165. return td(function()
  166. return text(fortune.message)
  167. end)
  168. end)
  169. end
  170. end)
  171. end)
  172. end)
  173. end)
  174. end,
  175. ["/update"] = function(self)
  176. local num_queries = tonumber(self.params.queries) or 1
  177. if num_queries == 0 then
  178. num_queries = 1
  179. end
  180. local worlds = { }
  181. num_queries = min(500, num_queries)
  182. for i = 1, num_queries do
  183. local wid = random(1, 10000)
  184. local world = World:find(wid)
  185. world.randomnumber = random(1, 10000)
  186. world:update("randomnumber")
  187. insert(worlds, {
  188. id = world.id,
  189. randomNumber = world.randomnumber
  190. })
  191. end
  192. if num_queries < 2 then
  193. return {
  194. json = worlds[1]
  195. }
  196. end
  197. return {
  198. json = worlds
  199. }
  200. end,
  201. ["/plaintext"] = function(self)
  202. return {
  203. content_type = "text/plain",
  204. layout = false
  205. }, "Hello, World!"
  206. end
  207. }
  208. _base_0.__index = _base_0
  209. setmetatable(_base_0, _parent_0.__base)
  210. local _class_0 = setmetatable({
  211. __init = function(self, ...)
  212. return _parent_0.__init(self, ...)
  213. end,
  214. __base = _base_0,
  215. __name = "Benchmark",
  216. __parent = _parent_0
  217. }, {
  218. __index = function(cls, name)
  219. local val = rawget(_base_0, name)
  220. if val == nil then
  221. return _parent_0[name]
  222. else
  223. return val
  224. end
  225. end,
  226. __call = function(cls, ...)
  227. local _self_0 = setmetatable({}, _base_0)
  228. cls.__init(_self_0, ...)
  229. return _self_0
  230. end
  231. })
  232. _base_0.__class = _class_0
  233. if _parent_0.__inherited then
  234. _parent_0.__inherited(_parent_0, _class_0)
  235. end
  236. Benchmark = _class_0
  237. return _class_0
  238. end