From d3a16d142f6127e8612178bf57209185b14e2d4e Mon Sep 17 00:00:00 2001 From: leaf corcoran Date: Sun, 20 Sep 2020 15:43:24 -0700 Subject: [PATCH] unpack compat --- lapis/application.lua | 1 + lapis/application.moon | 2 ++ lapis/cmd/actions.lua | 1 + lapis/cmd/actions.moon | 2 ++ lapis/db/base.lua | 1 + lapis/db/base.moon | 2 ++ lapis/db/base_model.lua | 5 +++-- lapis/db/base_model.moon | 4 +++- lapis/db/mysql.lua | 1 + lapis/db/mysql.moon | 2 ++ lapis/db/mysql/schema.lua | 1 + lapis/db/mysql/schema.moon | 2 ++ lapis/db/pagination.lua | 1 + lapis/db/pagination.moon | 2 ++ lapis/db/postgres.lua | 1 + lapis/db/postgres.moon | 1 + lapis/db/postgres/model.lua | 5 +++-- lapis/db/postgres/model.moon | 3 ++- lapis/db/postgres/schema.lua | 1 + lapis/db/postgres/schema.moon | 1 + lapis/html.lua | 7 +++++-- lapis/html.moon | 3 ++- lapis/nginx.lua | 1 + lapis/nginx.moon | 2 ++ lapis/nginx/cache.lua | 1 + lapis/nginx/cache.moon | 2 ++ lapis/router.lua | 1 + lapis/router.moon | 1 + lapis/spec/db.lua | 1 + lapis/spec/db.moon | 2 ++ lapis/spec/request.lua | 1 + lapis/spec/request.moon | 2 ++ lapis/util.lua | 1 + lapis/util.moon | 1 + lapis/validate.lua | 1 + lapis/validate.moon | 2 ++ spec/core_model_specs.moon | 2 ++ spec/mysql_spec.moon | 2 ++ spec/postgres_spec.moon | 2 ++ spec/routes_spec.moon | 2 ++ spec/util_spec.moon | 2 ++ spec_postgres/model_spec.moon | 2 ++ 42 files changed, 71 insertions(+), 9 deletions(-) diff --git a/lapis/application.lua b/lapis/application.lua index 001cfb9e..46b06d60 100644 --- a/lapis/application.lua +++ b/lapis/application.lua @@ -5,6 +5,7 @@ Router = require("lapis.router").Router local insert insert = table.insert local json = require("cjson") +local unpack = unpack or table.unpack local capture_errors, capture_errors_json, respond_to local run_before_filter run_before_filter = function(filter, r) diff --git a/lapis/application.moon b/lapis/application.moon index 0d892c90..11fdccd5 100644 --- a/lapis/application.moon +++ b/lapis/application.moon @@ -8,6 +8,8 @@ import insert from table json = require "cjson" +unpack = unpack or table.unpack + local capture_errors, capture_errors_json, respond_to run_before_filter = (filter, r) -> diff --git a/lapis/cmd/actions.lua b/lapis/cmd/actions.lua index e54dcbe1..cb5824ac 100644 --- a/lapis/cmd/actions.lua +++ b/lapis/cmd/actions.lua @@ -6,6 +6,7 @@ end local default_environment default_environment = require("lapis.environment").default_environment local colors = require("ansicolors") +local unpack = unpack or table.unpack local Actions do local _class_0 diff --git a/lapis/cmd/actions.moon b/lapis/cmd/actions.moon index 17f2df1e..1ed929cd 100644 --- a/lapis/cmd/actions.moon +++ b/lapis/cmd/actions.moon @@ -4,6 +4,8 @@ import default_environment from require "lapis.environment" colors = require "ansicolors" +unpack = unpack or table.unpack + class Actions defalt_action: "help" diff --git a/lapis/db/base.lua b/lapis/db/base.lua index fe34d5f5..95fe4e57 100644 --- a/lapis/db/base.lua +++ b/lapis/db/base.lua @@ -63,6 +63,7 @@ local is_list is_list = function(val) return getmetatable(val) == DBList.__base end +local unpack = unpack or table.unpack local is_encodable is_encodable = function(item) local _exp_0 = type(item) diff --git a/lapis/db/base.moon b/lapis/db/base.moon index 38411978..ebeaf348 100644 --- a/lapis/db/base.moon +++ b/lapis/db/base.moon @@ -9,6 +9,8 @@ class DBList list = (items) -> setmetatable {items}, DBList.__base is_list = (val) -> getmetatable(val) == DBList.__base +unpack = unpack or table.unpack + -- is item a value we can insert into a query is_encodable = (item) -> switch type(item) diff --git a/lapis/db/base_model.lua b/lapis/db/base_model.lua index f64b27df..1d51c49b 100644 --- a/lapis/db/base_model.lua +++ b/lapis/db/base_model.lua @@ -8,11 +8,12 @@ do local _obj_0 = table insert, concat = _obj_0.insert, _obj_0.concat end -local require, type, setmetatable, rawget, assert, pairs, unpack, error, next +local require, type, setmetatable, rawget, assert, pairs, error, next do local _obj_0 = _G - require, type, setmetatable, rawget, assert, pairs, unpack, error, next = _obj_0.require, _obj_0.type, _obj_0.setmetatable, _obj_0.rawget, _obj_0.assert, _obj_0.pairs, _obj_0.unpack, _obj_0.error, _obj_0.next + require, type, setmetatable, rawget, assert, pairs, error, next = _obj_0.require, _obj_0.type, _obj_0.setmetatable, _obj_0.rawget, _obj_0.assert, _obj_0.pairs, _obj_0.error, _obj_0.next end +local unpack = unpack or table.unpack local cjson = require("cjson") local add_relations, mark_loaded_relations do diff --git a/lapis/db/base_model.moon b/lapis/db/base_model.moon index 241fc128..58e82a72 100644 --- a/lapis/db/base_model.moon +++ b/lapis/db/base_model.moon @@ -1,7 +1,9 @@ import underscore, escape_pattern, uniquify, singularize from require "lapis.util" import insert, concat from table -import require, type, setmetatable, rawget, assert, pairs, unpack, error, next from _G +import require, type, setmetatable, rawget, assert, pairs, error, next from _G + +unpack = unpack or table.unpack cjson = require "cjson" diff --git a/lapis/db/mysql.lua b/lapis/db/mysql.lua index e7697e11..f687e2e5 100644 --- a/lapis/db/mysql.lua +++ b/lapis/db/mysql.lua @@ -5,6 +5,7 @@ do end local concat concat = table.concat +local unpack = unpack or table.unpack local FALSE, NULL, TRUE, build_helpers, format_date, is_raw, raw, is_list, list, is_encodable do local _obj_0 = require("lapis.db.base") diff --git a/lapis/db/mysql.moon b/lapis/db/mysql.moon index 4eb37451..23c0f7c6 100644 --- a/lapis/db/mysql.moon +++ b/lapis/db/mysql.moon @@ -2,6 +2,8 @@ import type, tostring, pairs, select from _G import concat from table +unpack = unpack or table.unpack + import FALSE NULL diff --git a/lapis/db/mysql/schema.lua b/lapis/db/mysql/schema.lua index 478e17b3..84be4e58 100644 --- a/lapis/db/mysql/schema.lua +++ b/lapis/db/mysql/schema.lua @@ -5,6 +5,7 @@ local concat concat = table.concat local gen_index_name gen_index_name = require("lapis.db.base").gen_index_name +local unpack = unpack or table.unpack local append_all append_all = function(t, ...) for i = 1, select("#", ...) do diff --git a/lapis/db/mysql/schema.moon b/lapis/db/mysql/schema.moon index df2e4508..36f3fcf3 100644 --- a/lapis/db/mysql/schema.moon +++ b/lapis/db/mysql/schema.moon @@ -4,6 +4,8 @@ import escape_literal, escape_identifier from db import concat from table import gen_index_name from require "lapis.db.base" +unpack = unpack or table.unpack + append_all = (t, ...) -> for i=1, select "#", ... t[#t + 1] = select i, ... diff --git a/lapis/db/pagination.lua b/lapis/db/pagination.lua index 10df86f8..5eddad14 100644 --- a/lapis/db/pagination.lua +++ b/lapis/db/pagination.lua @@ -5,6 +5,7 @@ do end local get_fields get_fields = require("lapis.util").get_fields +local unpack = unpack or table.unpack local query_parts = { "where", "group", diff --git a/lapis/db/pagination.moon b/lapis/db/pagination.moon index 534f0b9c..b6b55ef8 100644 --- a/lapis/db/pagination.moon +++ b/lapis/db/pagination.moon @@ -2,6 +2,8 @@ import insert, concat from table import get_fields from require "lapis.util" +unpack = unpack or table.unpack + query_parts = {"where", "group", "having", "order", "limit", "offset"} rebuild_query_clause = (parsed) -> buffer = {} diff --git a/lapis/db/postgres.lua b/lapis/db/postgres.lua index bcf36a70..fdceb09c 100644 --- a/lapis/db/postgres.lua +++ b/lapis/db/postgres.lua @@ -5,6 +5,7 @@ do local _obj_0 = _G type, tostring, pairs, select = _obj_0.type, _obj_0.tostring, _obj_0.pairs, _obj_0.select end +local unpack = unpack or table.unpack local raw_query, raw_disconnect local logger local FALSE, NULL, TRUE, build_helpers, format_date, is_raw, raw, is_list, list, is_encodable diff --git a/lapis/db/postgres.moon b/lapis/db/postgres.moon index 3aef85b9..e761f151 100644 --- a/lapis/db/postgres.moon +++ b/lapis/db/postgres.moon @@ -1,5 +1,6 @@ import concat from table import type, tostring, pairs, select from _G +unpack = unpack or table.unpack local raw_query, raw_disconnect local logger diff --git a/lapis/db/postgres/model.lua b/lapis/db/postgres/model.lua index 2f71995e..b5498158 100644 --- a/lapis/db/postgres/model.lua +++ b/lapis/db/postgres/model.lua @@ -1,9 +1,10 @@ local db = require("lapis.db.postgres") -local select, pairs, unpack, type +local select, pairs, type do local _obj_0 = _G - select, pairs, unpack, type, select = _obj_0.select, _obj_0.pairs, _obj_0.unpack, _obj_0.type, _obj_0.select + select, pairs, type, select = _obj_0.select, _obj_0.pairs, _obj_0.type, _obj_0.select end +local unpack = unpack or table.unpack local insert insert = table.insert local BaseModel, Enum, enum diff --git a/lapis/db/postgres/model.moon b/lapis/db/postgres/model.moon index 18dc544e..42ca3660 100644 --- a/lapis/db/postgres/model.moon +++ b/lapis/db/postgres/model.moon @@ -1,6 +1,7 @@ db = require "lapis.db.postgres" -import select, pairs, unpack, type, select from _G +import select, pairs, type, select from _G +unpack = unpack or table.unpack import insert from table import BaseModel, Enum, enum from require "lapis.db.base_model" diff --git a/lapis/db/postgres/schema.lua b/lapis/db/postgres/schema.lua index 460cb13f..fb9767ed 100644 --- a/lapis/db/postgres/schema.lua +++ b/lapis/db/postgres/schema.lua @@ -5,6 +5,7 @@ local escape_literal, escape_identifier, is_raw escape_literal, escape_identifier, is_raw = db.escape_literal, db.escape_identifier, db.is_raw local concat concat = table.concat +local unpack = unpack or table.unpack local append_all append_all = function(t, ...) for i = 1, select("#", ...) do diff --git a/lapis/db/postgres/schema.moon b/lapis/db/postgres/schema.moon index 71cf4883..1f3e281a 100644 --- a/lapis/db/postgres/schema.moon +++ b/lapis/db/postgres/schema.moon @@ -3,6 +3,7 @@ db = require "lapis.db.postgres" import gen_index_name from require "lapis.db.base" import escape_literal, escape_identifier, is_raw from db import concat from table +unpack = unpack or table.unpack append_all = (t, ...) -> for i=1, select "#", ... diff --git a/lapis/html.lua b/lapis/html.lua index aafe245a..b304f8c2 100644 --- a/lapis/html.lua +++ b/lapis/html.lua @@ -3,9 +3,12 @@ do local _obj_0 = table concat, insert = _obj_0.concat, _obj_0.insert end -local _G = _G local type, pairs, ipairs, tostring, getmetatable, setmetatable, table -type, pairs, ipairs, tostring, getmetatable, setmetatable, table = _G.type, _G.pairs, _G.ipairs, _G.tostring, _G.getmetatable, _G.setmetatable, _G.table +do + local _obj_0 = _G + type, pairs, ipairs, tostring, getmetatable, setmetatable, table = _obj_0.type, _obj_0.pairs, _obj_0.ipairs, _obj_0.tostring, _obj_0.getmetatable, _obj_0.setmetatable, _obj_0.table +end +local unpack = unpack or table.unpack local getfenv, setfenv do local _obj_0 = require("lapis.util.fenv") diff --git a/lapis/html.moon b/lapis/html.moon index e510f197..78f8b42d 100644 --- a/lapis/html.moon +++ b/lapis/html.moon @@ -1,10 +1,11 @@ import concat, insert from table -_G = _G import type, pairs, ipairs, tostring, getmetatable, setmetatable, table from _G +unpack = unpack or table.unpack + import getfenv, setfenv from require "lapis.util.fenv" import locked_fn, release_fn from require "lapis.util.functions" diff --git a/lapis/nginx.lua b/lapis/nginx.lua index 076fceb5..2b257b6a 100644 --- a/lapis/nginx.lua +++ b/lapis/nginx.lua @@ -6,6 +6,7 @@ end local run_after_dispatch run_after_dispatch = require("lapis.nginx.context").run_after_dispatch local lapis_config = require("lapis.config") +local unpack = unpack or table.unpack local flatten_params flatten_params = function(t) local _tbl_0 = { } diff --git a/lapis/nginx.moon b/lapis/nginx.moon index 2a5cfbf1..bad5086e 100644 --- a/lapis/nginx.moon +++ b/lapis/nginx.moon @@ -2,6 +2,8 @@ import escape_pattern, parse_content_disposition, build_url from require "lapis. import run_after_dispatch from require "lapis.nginx.context" lapis_config = require "lapis.config" +unpack = unpack or table.unpack + flatten_params = (t) -> {k, type(v) == "table" and v[#v] or v for k,v in pairs t} diff --git a/lapis/nginx/cache.lua b/lapis/nginx/cache.lua index cfb1ab28..b4300fe2 100644 --- a/lapis/nginx/cache.lua +++ b/lapis/nginx/cache.lua @@ -1,4 +1,5 @@ local json = require("cjson") +local unpack = unpack or table.unpack local sort, concat do local _obj_0 = table diff --git a/lapis/nginx/cache.moon b/lapis/nginx/cache.moon index 5b09e836..ad7f2f27 100644 --- a/lapis/nginx/cache.moon +++ b/lapis/nginx/cache.moon @@ -5,6 +5,8 @@ json = require "cjson" +unpack = unpack or table.unpack + import sort, concat from table default_dict_name = "page_cache" diff --git a/lapis/router.lua b/lapis/router.lua index 072e8559..24a4bcd1 100644 --- a/lapis/router.lua +++ b/lapis/router.lua @@ -1,5 +1,6 @@ local insert insert = table.insert +local unpack = unpack or table.unpack local lpeg = require("lpeg") local R, S, V, P R, S, V, P = lpeg.R, lpeg.S, lpeg.V, lpeg.P diff --git a/lapis/router.moon b/lapis/router.moon index 024074f7..ed72b90c 100644 --- a/lapis/router.moon +++ b/lapis/router.moon @@ -5,6 +5,7 @@ -- :something[num] *[slug] import insert from table +unpack = unpack or table.unpack lpeg = require "lpeg" diff --git a/lapis/spec/db.lua b/lapis/spec/db.lua index bc9c5412..d6e05a3d 100644 --- a/lapis/spec/db.lua +++ b/lapis/spec/db.lua @@ -1,5 +1,6 @@ local assert_env assert_env = require("lapis.environment").assert_env +local unpack = unpack or table.unpack local truncate_tables truncate_tables = function(...) local db = require("lapis.db") diff --git a/lapis/spec/db.moon b/lapis/spec/db.moon index b7561db2..50d28631 100644 --- a/lapis/spec/db.moon +++ b/lapis/spec/db.moon @@ -1,6 +1,8 @@ import assert_env from require "lapis.environment" +unpack = unpack or table.unpack + truncate_tables = (...) -> db = require "lapis.db" diff --git a/lapis/spec/request.lua b/lapis/spec/request.lua index 13886f1e..dbe6315a 100644 --- a/lapis/spec/request.lua +++ b/lapis/spec/request.lua @@ -1,4 +1,5 @@ local env = require("lapis.environment") +local unpack = unpack or table.unpack local normalize_headers do local normalize diff --git a/lapis/spec/request.moon b/lapis/spec/request.moon index a2e72e3a..e3da579f 100644 --- a/lapis/spec/request.moon +++ b/lapis/spec/request.moon @@ -1,6 +1,8 @@ env = require "lapis.environment" +unpack = unpack or table.unpack + normalize_headers = do normalize = (header) -> header\lower!\gsub "-", "_" diff --git a/lapis/util.lua b/lapis/util.lua index 20d1760c..1f57fd9a 100644 --- a/lapis/util.lua +++ b/lapis/util.lua @@ -5,6 +5,7 @@ do local _obj_0 = table concat, insert = _obj_0.concat, _obj_0.insert end +local unpack = unpack or table.unpack local floor floor = math.floor local date diff --git a/lapis/util.moon b/lapis/util.moon index 66d74890..b9c3af93 100644 --- a/lapis/util.moon +++ b/lapis/util.moon @@ -3,6 +3,7 @@ url = require "socket.url" json = require "cjson" import concat, insert from table +unpack = unpack or table.unpack import floor from math -- TODO: make this a dependency diff --git a/lapis/validate.lua b/lapis/validate.lua index 9afee2e5..584ea2b9 100644 --- a/lapis/validate.lua +++ b/lapis/validate.lua @@ -1,5 +1,6 @@ local insert insert = table.insert +local unpack = unpack or table.unpack local validate_functions = { exists = function(input) return input and input ~= "", "%s must be provided" diff --git a/lapis/validate.moon b/lapis/validate.moon index 277acded..aa0e0174 100644 --- a/lapis/validate.moon +++ b/lapis/validate.moon @@ -1,6 +1,8 @@ import insert from table +unpack = unpack or table.unpack + validate_functions = { exists: (input) -> input and input != "", "%s must be provided" diff --git a/spec/core_model_specs.moon b/spec/core_model_specs.moon index 6495127a..dd18993c 100644 --- a/spec/core_model_specs.moon +++ b/spec/core_model_specs.moon @@ -3,6 +3,8 @@ assert = require "luassert" +unpack = unpack or table.unpack + assert_same_rows = (a, b) -> a = {k,v for k,v in pairs a} b = {k,v for k,v in pairs b} diff --git a/spec/mysql_spec.moon b/spec/mysql_spec.moon index a56c27f8..6c4b8264 100644 --- a/spec/mysql_spec.moon +++ b/spec/mysql_spec.moon @@ -3,6 +3,8 @@ require "spec.helpers" -- for one_of db = require "lapis.db.mysql" schema = require "lapis.db.mysql.schema" +unpack = unpack or table.unpack + -- TODO: we can't test escape_literal with strings here because we need a -- connection for escape function diff --git a/spec/postgres_spec.moon b/spec/postgres_spec.moon index 92664023..3be84e42 100644 --- a/spec/postgres_spec.moon +++ b/spec/postgres_spec.moon @@ -3,6 +3,8 @@ require "spec.helpers" -- for one_of db = require "lapis.db.postgres" schema = require "lapis.db.postgres.schema" +unpack = unpack or table.unpack + value_table = { hello: "world", age: 34 } tests = { diff --git a/spec/routes_spec.moon b/spec/routes_spec.moon index 444f0843..6289ec06 100644 --- a/spec/routes_spec.moon +++ b/spec/routes_spec.moon @@ -1,6 +1,8 @@ import Router, RouteParser from require "lapis.router" +unpack = unpack or table.unpack + build_router = (routes) -> handler = (...) -> { ... } with r = Router! diff --git a/spec/util_spec.moon b/spec/util_spec.moon index 4564dbda..33bb0504 100644 --- a/spec/util_spec.moon +++ b/spec/util_spec.moon @@ -2,6 +2,8 @@ util = require "lapis.util" json = require "cjson" +unpack = unpack or table.unpack + tests = { { -> util.parse_query_string "field1=value1&field2=value2&field3=value3" diff --git a/spec_postgres/model_spec.moon b/spec_postgres/model_spec.moon index 917fdff1..b1936e97 100644 --- a/spec_postgres/model_spec.moon +++ b/spec_postgres/model_spec.moon @@ -3,6 +3,8 @@ import setup_db, teardown_db from require "spec_postgres.helpers" import drop_tables, truncate_tables from require "lapis.spec.db" +unpack = unpack or table.unpack + db = require "lapis.db.postgres" import Model, enum from require "lapis.db.postgres.model" import types, create_table from require "lapis.db.postgres.schema"