| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 | local lapis = require("lapis")local db = require("lapis.db")local Modeldo  local _obj_0 = require("lapis.db.model")  Model = _obj_0.Modelendlocal configdo  local _obj_0 = require("lapis.config")  config = _obj_0.configendlocal insertdo  local _obj_0 = table  insert = _obj_0.insertendlocal sortdo  local _obj_0 = table  sort = _obj_0.sortendlocal min, randomdo  local _obj_0 = math  min, random = _obj_0.min, _obj_0.randomendlocal Fortunedo  local _parent_0 = Model  local _base_0 = { }  _base_0.__index = _base_0  setmetatable(_base_0, _parent_0.__base)  local _class_0 = setmetatable({    __init = function(self, ...)      return _parent_0.__init(self, ...)    end,    __base = _base_0,    __name = "Fortune",    __parent = _parent_0  }, {    __index = function(cls, name)      local val = rawget(_base_0, name)      if val == nil then        return _parent_0[name]      else        return val      end    end,    __call = function(cls, ...)      local _self_0 = setmetatable({}, _base_0)      cls.__init(_self_0, ...)      return _self_0    end  })  _base_0.__class = _class_0  if _parent_0.__inherited then    _parent_0.__inherited(_parent_0, _class_0)  end  Fortune = _class_0endlocal Worlddo  local _parent_0 = Model  local _base_0 = { }  _base_0.__index = _base_0  setmetatable(_base_0, _parent_0.__base)  local _class_0 = setmetatable({    __init = function(self, ...)      return _parent_0.__init(self, ...)    end,    __base = _base_0,    __name = "World",    __parent = _parent_0  }, {    __index = function(cls, name)      local val = rawget(_base_0, name)      if val == nil then        return _parent_0[name]      else        return val      end    end,    __call = function(cls, ...)      local _self_0 = setmetatable({}, _base_0)      cls.__init(_self_0, ...)      return _self_0    end  })  _base_0.__class = _class_0  if _parent_0.__inherited then    _parent_0.__inherited(_parent_0, _class_0)  end  World = _class_0endlocal Benchmarkdo  local _parent_0 = lapis.Application  local _base_0 = {    ["/json"] = function(self)      return {        json = {          message = "Hello, World!"        }      }    end,    ["/db"] = function(self)      local w = World:find(random(1, 10000))      return {        json = {          id = w.id,          randomNumber = w.randomnumber        }      }    end,    ["/queries"] = function(self)      local num_queries = tonumber(self.params.queries) or 1      if num_queries < 2 then        local w = World:find(random(1, 10000))        return {          json = {            {              id = w.id,              randomNumber = w.randomnumber            }          }        }      end      local worlds = { }      num_queries = min(500, num_queries)      for i = 1, num_queries do        local w = World:find(random(1, 10000))        insert(worlds, {          id = w.id,          randomNumber = w.randomnumber        })      end      return {        json = worlds      }    end,    ["/fortunes"] = function(self)      self.fortunes = Fortune:select("")      insert(self.fortunes, {        id = 0,        message = "Additional fortune added at request time."      })      sort(self.fortunes, function(a, b)        return a.message < b.message      end)      return {        layout = false      }, self:html(function()        raw('<!DOCTYPE HTML>')        return html(function()          head(function()            return title("Fortunes")          end)          return body(function()            return element("table", function()              tr(function()                th(function()                  return text("id")                end)                return th(function()                  return text("message")                end)              end)              local _list_0 = self.fortunes              for _index_0 = 1, #_list_0 do                local fortune = _list_0[_index_0]                tr(function()                  td(function()                    return text(fortune.id)                  end)                  return td(function()                    return text(fortune.message)                  end)                end)              end            end)          end)        end)      end)    end,    ["/update"] = function(self)      local num_queries = tonumber(self.params.queries) or 1      if num_queries == 0 then        num_queries = 1      end      local worlds = { }      num_queries = min(500, num_queries)      for i = 1, num_queries do        local wid = random(1, 10000)        local world = World:find(wid)        world.randomnumber = random(1, 10000)        world:update("randomnumber")        insert(worlds, {          id = world.id,          randomNumber = world.randomnumber        })      end      if num_queries < 2 then        return {          json = {            worlds[1]          }        }      end      return {        json = worlds      }    end,    ["/plaintext"] = function(self)      return {        content_type = "text/plain",        layout = false      }, "Hello, World!"    end  }  _base_0.__index = _base_0  setmetatable(_base_0, _parent_0.__base)  local _class_0 = setmetatable({    __init = function(self, ...)      return _parent_0.__init(self, ...)    end,    __base = _base_0,    __name = "Benchmark",    __parent = _parent_0  }, {    __index = function(cls, name)      local val = rawget(_base_0, name)      if val == nil then        return _parent_0[name]      else        return val      end    end,    __call = function(cls, ...)      local _self_0 = setmetatable({}, _base_0)      cls.__init(_self_0, ...)      return _self_0    end  })  _base_0.__class = _class_0  if _parent_0.__inherited then    _parent_0.__inherited(_parent_0, _class_0)  end  Benchmark = _class_0  return _class_0end
 |