Mercurial Hosting > chat
comparison src/lib/Utils.luan @ 4:2da10ece826f
add Chat
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 27 Oct 2024 20:39:18 -0600 |
parents | 2c63b10781e1 |
children | 7230c821c368 |
comparison
equal
deleted
inserted
replaced
3:2c63b10781e1 | 4:2da10ece826f |
---|---|
1 local Luan = require "luan:Luan.luan" | 1 local Luan = require "luan:Luan.luan" |
2 local error = Luan.error | 2 local error = Luan.error |
3 local type = Luan.type or error() | |
4 local ipairs = Luan.ipairs or error() | |
5 local set_metatable = Luan.set_metatable or error() | |
3 local Http = require "luan:http/Http.luan" | 6 local Http = require "luan:http/Http.luan" |
4 | 7 |
5 | 8 |
6 local Utils = {} | 9 local Utils = {} |
7 | 10 |
8 function Utils.base_url() | 11 function Utils.base_url() |
9 local request = Http.request | 12 local request = Http.request |
10 return request.scheme.."://"..request.headers["Host"] | 13 return request.scheme.."://"..request.headers["Host"] |
11 end | 14 end |
12 | 15 |
16 function Utils.to_list(input) | |
17 if input == nil then | |
18 return {} | |
19 elseif type(input) == "table" then | |
20 return input | |
21 else | |
22 return {input} | |
23 end | |
24 end | |
25 | |
26 local set_mt = {} | |
27 function set_mt.__index(table,key) | |
28 return false | |
29 end | |
30 | |
31 local function list_to_set(list) | |
32 local set = {} | |
33 for _, v in ipairs(list) do | |
34 set[v] = true | |
35 end | |
36 set_metatable(set,set_mt) | |
37 return set | |
38 end | |
39 Utils.list_to_set = list_to_set | |
40 | |
41 function Utils.to_set(obj) | |
42 if obj == nil then | |
43 return {} | |
44 elseif type(obj) == "table" then | |
45 return list_to_set(obj) | |
46 else | |
47 return {[obj]=true} | |
48 end | |
49 end | |
50 | |
13 return Utils | 51 return Utils |