rua 0.3.7 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- data/README.txt +5 -0
- data/ext/rua.c +28 -2
- metadata +4 -4
data/README.txt
CHANGED
@@ -27,6 +27,8 @@ http://storehouse.sakura.ne.jp/rua/
|
|
27
27
|
class MyClass
|
28
28
|
def val=(v); @val = v; end
|
29
29
|
def val; @val; end
|
30
|
+
def [](k); "#{k}->#{@val}"; end
|
31
|
+
def []=(k, v); @val = "#{k}:#{v}"; end
|
30
32
|
end
|
31
33
|
|
32
34
|
rua = Rua.new(:all)
|
@@ -65,6 +67,9 @@ http://storehouse.sakura.ne.jp/rua/
|
|
65
67
|
my_obj = MyClass.new()
|
66
68
|
my_obj.val = 'my_obj.val'
|
67
69
|
print(my_obj.val())
|
70
|
+
print(my_obj['foo'])
|
71
|
+
my_obj['bar'] = 'zoo'
|
72
|
+
print(my_obj.val())
|
68
73
|
|
69
74
|
f = function()
|
70
75
|
print('f() called.')
|
data/ext/rua.c
CHANGED
@@ -21,7 +21,7 @@ __declspec(dllexport) void Init_rua(void);
|
|
21
21
|
|
22
22
|
#include "rua.h"
|
23
23
|
|
24
|
-
#define VERSION "0.3.
|
24
|
+
#define VERSION "0.3.8"
|
25
25
|
#define REF_RBOBJ "self"
|
26
26
|
|
27
27
|
#define ICONV_JIS "ISO-2022-JP"
|
@@ -1059,7 +1059,23 @@ static int rua_getobject_event(lua_State *L) {
|
|
1059
1059
|
int tblidx;
|
1060
1060
|
|
1061
1061
|
tblidx = lua_upvalueindex(1);
|
1062
|
+
lua_pushvalue(L, -1);
|
1062
1063
|
lua_rawget(L, tblidx);
|
1064
|
+
|
1065
|
+
if (lua_isnil(L, -1)) {
|
1066
|
+
lua_pop(L, 1);
|
1067
|
+
lua_pushstring(L, "[]");
|
1068
|
+
lua_rawget(L, tblidx);
|
1069
|
+
|
1070
|
+
if (lua_isfunction(L, -1)) {
|
1071
|
+
lua_pushvalue(L, -2);
|
1072
|
+
lua_call(L, 1, 1);
|
1073
|
+
} else {
|
1074
|
+
lua_pop(L, 1);
|
1075
|
+
lua_pushnil(L);
|
1076
|
+
}
|
1077
|
+
}
|
1078
|
+
|
1063
1079
|
return 1;
|
1064
1080
|
}
|
1065
1081
|
|
@@ -1086,7 +1102,17 @@ static int rua_setobject_event(lua_State *L) {
|
|
1086
1102
|
lua_call(L, 1, 0);
|
1087
1103
|
} else {
|
1088
1104
|
lua_pop(L, 1);
|
1089
|
-
|
1105
|
+
lua_pushstring(L, "[]=");
|
1106
|
+
lua_rawget(L, tblidx);
|
1107
|
+
|
1108
|
+
if (lua_isfunction(L, -1)) {
|
1109
|
+
lua_pushvalue(L, -3);
|
1110
|
+
lua_pushvalue(L, -3);
|
1111
|
+
lua_call(L, 2, 0);
|
1112
|
+
} else {
|
1113
|
+
lua_pop(L, 1);
|
1114
|
+
lua_rawset(L, tblidx);
|
1115
|
+
}
|
1090
1116
|
}
|
1091
1117
|
|
1092
1118
|
return 0;
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rua
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
platform:
|
4
|
+
version: 0.3.8
|
5
|
+
platform: ruby
|
6
6
|
authors:
|
7
7
|
- winebarrel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2007-12-
|
12
|
+
date: 2007-12-28 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -50,7 +50,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements: []
|
51
51
|
|
52
52
|
rubyforge_project:
|
53
|
-
rubygems_version: 0.
|
53
|
+
rubygems_version: 1.0.1
|
54
54
|
signing_key:
|
55
55
|
specification_version: 2
|
56
56
|
summary: Rua is a library for using Lua under Ruby.
|