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