Mercurial Hosting > luan
comparison src/luan/modules/Luan.luan @ 1259:e8020216dee7
add Luan.to_luan and fix multipart/form-data
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Sun, 23 Sep 2018 17:58:40 -0600 |
parents | 73d754b1889f |
children | 4b5b84853f6f |
comparison
equal
deleted
inserted
replaced
1258:e4d7a3114fa8 | 1259:e8020216dee7 |
---|---|
1 java() | 1 java() |
2 local BasicLuan = require "java:luan.modules.BasicLuan" | 2 local BasicLuan = require "java:luan.modules.BasicLuan" |
3 local LuanJava = require "java:luan.Luan" | |
3 | 4 |
4 local Luan = {} | 5 local Luan = {} |
5 | 6 |
6 Luan.get_metatable = BasicLuan.get_metatable | 7 Luan.get_metatable = BasicLuan.get_metatable |
7 Luan.hash_code = BasicLuan.hash_code | 8 Luan.hash_code = BasicLuan.hash_code |
35 | 36 |
36 function Luan.eval(s,source_name) | 37 function Luan.eval(s,source_name) |
37 return Luan.load( "return "..s, source_name or "eval" )() | 38 return Luan.load( "return "..s, source_name or "eval" )() |
38 end | 39 end |
39 | 40 |
41 | |
42 local error = Luan.error | |
43 local type = Luan.type or error() | |
44 local pairs = Luan.pairs or error() | |
45 | |
46 -- tries to convert to luan | |
47 function Luan.java_to_luan(obj) | |
48 return LuanJava.toTable(obj) or obj | |
49 end | |
50 | |
51 function Luan.to_luan(obj,java_to_luan) | |
52 if type(obj) ~= "java" then | |
53 return obj | |
54 end | |
55 java_to_luan = java_to_luan or Luan.java_to_luan | |
56 obj = java_to_luan(obj) | |
57 type(obj) ~= "java" or error("can't convert type "..obj.getClass().getName().." to luan") | |
58 if type(obj) ~= "table" then | |
59 return obj | |
60 end | |
61 local tbl = {} | |
62 for key, value in pairs(obj) do | |
63 key = Luan.to_luan(key,java_to_luan) | |
64 value = Luan.to_luan(value,java_to_luan) | |
65 tbl[key] = value | |
66 end | |
67 return tbl | |
68 end | |
69 | |
40 return Luan | 70 return Luan |