rjb 1.2.2 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +10 -0
- data/ext/extconf.h +9 -0
- data/ext/load.c +8 -1
- data/ext/riconv.c +9 -2
- data/ext/rjb.c +26 -12
- data/ext/rjbexception.c +2 -2
- data/lib/rjbextension.rb +1 -1
- metadata +26 -10
data/ChangeLog
CHANGED
@@ -1,3 +1,13 @@
|
|
1
|
+
Fri Jun 4 arton
|
2
|
+
*ext/riconv.c
|
3
|
+
remove unused function if build with Ruby 1.9
|
4
|
+
*ext/rjb.c
|
5
|
+
RJB_VERSION -> 1.2.3
|
6
|
+
to accomodate with rubinius
|
7
|
+
*ext/load.c
|
8
|
+
to accomodate with rubinius
|
9
|
+
*ext/rjbexception.c
|
10
|
+
to accomodate with rubinius
|
1
11
|
Sun May 30 arton
|
2
12
|
*lib/rjbextension.rb
|
3
13
|
Rjb extension from Andreas Ronge's neo4j
|
data/ext/extconf.h
ADDED
data/ext/load.c
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
13
|
* Lesser General Public License for more details.
|
14
14
|
*
|
15
|
-
* $Id: load.c
|
15
|
+
* $Id: load.c 119 2010-06-04 12:51:34Z arton $
|
16
16
|
*/
|
17
17
|
|
18
18
|
#include <stdlib.h>
|
@@ -104,11 +104,13 @@ static int open_jvm(char* libpath)
|
|
104
104
|
VALUE* argv;
|
105
105
|
|
106
106
|
rb_require("dl");
|
107
|
+
#if !defined(RUBINIUS)
|
107
108
|
if (!rb_const_defined_at(rb_cObject, rb_intern("DL")))
|
108
109
|
{
|
109
110
|
rb_raise(rb_eRuntimeError, "Constants DL is not defined.");
|
110
111
|
return 0;
|
111
112
|
}
|
113
|
+
#endif
|
112
114
|
argv = ALLOCA_N(VALUE, 4);
|
113
115
|
*argv = rb_const_get(rb_cObject, rb_intern("DL"));
|
114
116
|
*(argv + 1) = rb_intern("dlopen");
|
@@ -204,8 +206,13 @@ static int load_bridge(JNIEnv* jenv)
|
|
204
206
|
jmethodID getSysLoader = (*jenv)->GetStaticMethodID(jenv, loader,
|
205
207
|
"getSystemClassLoader", "()Ljava/lang/ClassLoader;");
|
206
208
|
jobject iloader = (*jenv)->CallStaticObjectMethod(jenv, loader, getSysLoader);
|
209
|
+
#if defined(RUBINIUS)
|
210
|
+
VALUE v = rb_const_get(rb_cObject, rb_intern("RjbConf"));
|
211
|
+
v = rb_const_get(v, rb_intern("BRIDGE_FILE"));
|
212
|
+
#else
|
207
213
|
VALUE v = rb_const_get_at(rb_const_get(rb_cObject, rb_intern("RjbConf")),
|
208
214
|
rb_intern("BRIDGE_FILE"));
|
215
|
+
#endif
|
209
216
|
bridge = StringValuePtr(v);
|
210
217
|
#if defined(DOSISH)
|
211
218
|
bridge = ALLOCA_N(char, strlen(bridge) + 8);
|
data/ext/riconv.c
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
13
|
* Lesser General Public License for more details.
|
14
14
|
*
|
15
|
-
* $Id: riconv.c
|
15
|
+
* $Id: riconv.c 117 2010-06-04 12:16:25Z arton $
|
16
16
|
*/
|
17
17
|
|
18
18
|
#include "ruby.h"
|
@@ -43,6 +43,7 @@ static const char* const CS_SJIS = "SHIFT_JIS";
|
|
43
43
|
static const char* const CS_UTF8 = "UTF-8";
|
44
44
|
|
45
45
|
|
46
|
+
#if RJB_RUBY_VERSION_CODE < 190
|
46
47
|
static VALUE objIconvJ2R;
|
47
48
|
static VALUE objIconvR2J;
|
48
49
|
static const char* charcode; //is this necessary?
|
@@ -58,7 +59,9 @@ static int find_table(const char* const str, const char* const table[])
|
|
58
59
|
}
|
59
60
|
return 0;
|
60
61
|
}
|
62
|
+
#endif
|
61
63
|
|
64
|
+
#if RJB_RUBY_VERSION_CODE < 190
|
62
65
|
static const char* get_charcode_name_by_locale(const char* const name)
|
63
66
|
{
|
64
67
|
if (find_table(name, LOCALE_UTF8_TABLE))
|
@@ -119,8 +122,9 @@ static const char* get_charcode_name()
|
|
119
122
|
}
|
120
123
|
return result;
|
121
124
|
}
|
125
|
+
#endif
|
122
126
|
|
123
|
-
|
127
|
+
#if RJB_RUBY_VERSION_CODE < 190
|
124
128
|
static void reinit()
|
125
129
|
{
|
126
130
|
charcode = get_charcode_name();
|
@@ -142,7 +146,9 @@ static void reinit()
|
|
142
146
|
objIconvR2J = objIconvJ2R = Qnil;
|
143
147
|
}
|
144
148
|
}
|
149
|
+
#endif
|
145
150
|
|
151
|
+
#if RJB_RUBY_VERSION_CODE < 190
|
146
152
|
static void check_kcode()
|
147
153
|
{
|
148
154
|
VALUE rb_iconv_klass = rb_const_get(rb_cObject, rb_intern("Iconv"));
|
@@ -161,6 +167,7 @@ static void check_kcode()
|
|
161
167
|
objIconvR2J = objIconvJ2R = Qnil;
|
162
168
|
}
|
163
169
|
}
|
170
|
+
#endif
|
164
171
|
|
165
172
|
VALUE exticonv_local_to_utf8(VALUE local_string)
|
166
173
|
{
|
data/ext/rjb.c
CHANGED
@@ -12,10 +12,10 @@
|
|
12
12
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
13
|
* Lesser General Public License for more details.
|
14
14
|
*
|
15
|
-
* $Id: rjb.c
|
15
|
+
* $Id: rjb.c 119 2010-06-04 12:51:34Z arton $
|
16
16
|
*/
|
17
17
|
|
18
|
-
#define RJB_VERSION "1.2.
|
18
|
+
#define RJB_VERSION "1.2.3"
|
19
19
|
|
20
20
|
#include "ruby.h"
|
21
21
|
#include "extconf.h"
|
@@ -55,7 +55,14 @@
|
|
55
55
|
#define RJB_LOAD_STATIC_METHOD(var, obj, name, sig) \
|
56
56
|
var = (*jenv)->GetStaticMethodID(jenv, obj, name, sig); \
|
57
57
|
rjb_check_exception(jenv, 1)
|
58
|
-
#
|
58
|
+
#if defined(RUBINIUS)
|
59
|
+
#define CLASS_NEW(obj, name) rb_define_class(name, obj)
|
60
|
+
#define CLASS_INHERITED(spr, kls) rb_funcall(spr, rb_intern("inherited"), 1, kls)
|
61
|
+
#else
|
62
|
+
#define CLASS_NEW(obj, name) rb_class_new(obj)
|
63
|
+
#define CLASS_INHERITED(spr, kls) rb_class_inherited(spr, kls)
|
64
|
+
#endif
|
65
|
+
#define IS_RJB_OBJECT(v) (CLASS_INHERITED(rjbi, rb_obj_class(v)) || rb_obj_class(v) == rjb)
|
59
66
|
#define USER_INITIALIZE "@user_initialize"
|
60
67
|
|
61
68
|
static void register_class(VALUE, VALUE);
|
@@ -780,7 +787,7 @@ static void rv2jobject(JNIEnv* jenv, VALUE val, jvalue* jv, const char* psig, in
|
|
780
787
|
Data_Get_Struct(val, struct rj_bridge, ptr);
|
781
788
|
jv->l = ptr->proxy;
|
782
789
|
}
|
783
|
-
else if (
|
790
|
+
else if (CLASS_INHERITED(rjbc, rb_obj_class(val)))
|
784
791
|
{
|
785
792
|
struct jv_data* ptr;
|
786
793
|
Data_Get_Struct(val, struct jv_data, ptr);
|
@@ -1780,10 +1787,10 @@ static int clear_classes(VALUE key, VALUE val, VALUE dummy)
|
|
1780
1787
|
static VALUE rjb_s_unload(int argc, VALUE* argv, VALUE self)
|
1781
1788
|
{
|
1782
1789
|
int result = 0;
|
1783
|
-
#
|
1790
|
+
#if defined(HAVE_RB_HASH_FOREACH) || defined(RUBINIUS)
|
1784
1791
|
rb_hash_foreach(rjb_loaded_classes, clear_classes, 0);
|
1785
1792
|
#else
|
1786
|
-
#
|
1793
|
+
#if defined(RHASH_TBL)
|
1787
1794
|
st_foreach(RHASH_TBL(rjb_loaded_classes), clear_classes, 0);
|
1788
1795
|
#else
|
1789
1796
|
st_foreach(RHASH(rjb_loaded_classes)->tbl, clear_classes, 0);
|
@@ -2264,7 +2271,11 @@ static VALUE rjb_class_eval(int argc, VALUE* argv, VALUE self)
|
|
2264
2271
|
static VALUE rjb_s_unbind(VALUE self, VALUE rbobj)
|
2265
2272
|
{
|
2266
2273
|
JNIEnv* jenv = rjb_prelude();
|
2274
|
+
#if defined(RUBINIUS)
|
2275
|
+
return rb_funcall(proxies, rb_intern("delete"), 1, rbobj);
|
2276
|
+
#else
|
2267
2277
|
return rb_ary_delete(proxies, rbobj);
|
2278
|
+
#endif
|
2268
2279
|
}
|
2269
2280
|
|
2270
2281
|
/*
|
@@ -2303,7 +2314,7 @@ static void register_class(VALUE self, VALUE clsname)
|
|
2303
2314
|
* the hash was frozen, so it need to call st_ func directly.
|
2304
2315
|
*/
|
2305
2316
|
|
2306
|
-
#
|
2317
|
+
#if defined(HAVE_RB_HASH_ASET) || defined(RUBINIUS)
|
2307
2318
|
rb_hash_aset(rjb_loaded_classes, clsname, self);
|
2308
2319
|
#else
|
2309
2320
|
#ifdef RHASH_TBL
|
@@ -2850,8 +2861,11 @@ static VALUE rjb_class_forname(int argc, VALUE* argv, VALUE self)
|
|
2850
2861
|
*/
|
2851
2862
|
void Init_rjbcore()
|
2852
2863
|
{
|
2864
|
+
#if defined(RUBINIUS)
|
2865
|
+
rb_require("iconv");
|
2866
|
+
#else
|
2853
2867
|
rb_protect((VALUE(*)(VALUE))rb_require, (VALUE)"iconv", NULL);
|
2854
|
-
|
2868
|
+
#endif
|
2855
2869
|
rjb_loaded_classes = rb_hash_new();
|
2856
2870
|
#ifndef RUBINIUS
|
2857
2871
|
OBJ_FREEZE(rjb_loaded_classes);
|
@@ -2860,7 +2874,7 @@ void Init_rjbcore()
|
|
2860
2874
|
proxies = rb_ary_new();
|
2861
2875
|
rb_global_variable(&proxies);
|
2862
2876
|
user_initialize = rb_intern(USER_INITIALIZE);
|
2863
|
-
|
2877
|
+
|
2864
2878
|
rjb = rb_define_module("Rjb");
|
2865
2879
|
rb_define_module_function(rjb, "load", rjb_s_load, -1);
|
2866
2880
|
rb_define_module_function(rjb, "unload", rjb_s_unload, -1);
|
@@ -2874,14 +2888,14 @@ void Init_rjbcore()
|
|
2874
2888
|
rb_define_const(rjb, "VERSION", rb_str_new2(RJB_VERSION));
|
2875
2889
|
|
2876
2890
|
/* Java class object */
|
2877
|
-
rjbc =
|
2891
|
+
rjbc = CLASS_NEW(rb_cObject, "Rjb_JavaClass");
|
2878
2892
|
rb_gc_register_address(&rjbc);
|
2879
2893
|
rb_define_method(rjbc, "method_missing", rjb_missing, -1);
|
2880
2894
|
rb_define_method(rjbc, "_invoke", rjb_invoke, -1);
|
2881
2895
|
rb_define_method(rjbc, "_classname", rjb_i_class, 0);
|
2882
2896
|
|
2883
2897
|
/* Java instance object */
|
2884
|
-
rjbi =
|
2898
|
+
rjbi = CLASS_NEW(rb_cObject, "Rjb_JavaProxy");
|
2885
2899
|
rb_gc_register_address(&rjbi);
|
2886
2900
|
rb_define_method(rjbi, "method_missing", rjb_i_missing, -1);
|
2887
2901
|
rb_define_method(rjbi, "_invoke", rjb_i_invoke, -1);
|
@@ -2890,7 +2904,7 @@ void Init_rjbcore()
|
|
2890
2904
|
rb_define_alias(rjbi, "include", "extend");
|
2891
2905
|
|
2892
2906
|
/* Ruby-Java Bridge object */
|
2893
|
-
rjbb =
|
2907
|
+
rjbb = CLASS_NEW(rb_cObject, "Rjb_JavaBridge");
|
2894
2908
|
rb_gc_register_address(&rjbb);
|
2895
2909
|
}
|
2896
2910
|
|
data/ext/rjbexception.c
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
13
|
* Lesser General Public License for more details.
|
14
14
|
*
|
15
|
-
* $Id: rjbexception.c
|
15
|
+
* $Id: rjbexception.c 119 2010-06-04 12:51:34Z arton $
|
16
16
|
*/
|
17
17
|
|
18
18
|
#include "ruby.h"
|
@@ -54,7 +54,7 @@ VALUE rjb_get_exception_class(JNIEnv* jenv, jstring str)
|
|
54
54
|
if (rexp == Qnil)
|
55
55
|
{
|
56
56
|
rexp = rb_define_class(pcls, rb_eStandardError);
|
57
|
-
#
|
57
|
+
#if defined(HAVE_RB_HASH_ASET) || defined(RUBINIUS)
|
58
58
|
rb_hash_aset(rjb_loaded_classes, cname, rexp);
|
59
59
|
#else
|
60
60
|
#ifdef RHASH_TBL
|
data/lib/rjbextension.rb
CHANGED
@@ -11,7 +11,7 @@ Copyright(c) 2010 arton
|
|
11
11
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
12
12
|
Lesser General Public License for more details.
|
13
13
|
|
14
|
-
$Id
|
14
|
+
$Id: rjbextension.rb 116 2010-05-30 14:23:07Z arton $
|
15
15
|
|
16
16
|
This file is from Andreas Ronge project neo4j
|
17
17
|
http://github.com/andreasronge/neo4j/blob/rjb/lib/rjb_ext.rb
|
metadata
CHANGED
@@ -1,7 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rjb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 25
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 2
|
9
|
+
- 3
|
10
|
+
version: 1.2.3
|
5
11
|
platform: ruby
|
6
12
|
authors:
|
7
13
|
- arton
|
@@ -9,7 +15,7 @@ autorequire:
|
|
9
15
|
bindir: bin
|
10
16
|
cert_chain: []
|
11
17
|
|
12
|
-
date: 2010-05
|
18
|
+
date: 2010-06-05 00:00:00 +09:00
|
13
19
|
default_executable:
|
14
20
|
dependencies: []
|
15
21
|
|
@@ -26,31 +32,33 @@ extra_rdoc_files: []
|
|
26
32
|
files:
|
27
33
|
- ext/RBridge.java
|
28
34
|
- ext/load.c
|
29
|
-
- ext/rjbexception.c
|
30
35
|
- ext/riconv.c
|
31
36
|
- ext/rjb.c
|
37
|
+
- ext/rjbexception.c
|
38
|
+
- ext/extconf.h
|
39
|
+
- ext/jniwrap.h
|
32
40
|
- ext/jp_co_infoseek_hp_arton_rjb_RBridge.h
|
33
41
|
- ext/riconv.h
|
34
|
-
- ext/jniwrap.h
|
35
42
|
- ext/rjb.h
|
36
43
|
- ext/depend
|
37
44
|
- data/rjb/jp/co/infoseek/hp/arton/rjb/RBridge.class
|
38
45
|
- lib/rjb.rb
|
39
46
|
- lib/rjbextension.rb
|
40
47
|
- samples/filechooser.rb
|
41
|
-
- test/test.rb
|
42
48
|
- test/exttest.rb
|
43
49
|
- test/gctest.rb
|
50
|
+
- test/test.rb
|
44
51
|
- test/jp/co/infoseek/hp/arton/rjb/Base.class
|
52
|
+
- test/jp/co/infoseek/hp/arton/rjb/ExtBase.class
|
45
53
|
- test/jp/co/infoseek/hp/arton/rjb/IBase.class
|
46
|
-
- test/jp/co/infoseek/hp/arton/rjb/Test.class
|
47
54
|
- test/jp/co/infoseek/hp/arton/rjb/Test$TestTypes.class
|
48
|
-
- test/jp/co/infoseek/hp/arton/rjb/
|
55
|
+
- test/jp/co/infoseek/hp/arton/rjb/Test.class
|
49
56
|
- test/rjbtest.jar
|
50
57
|
- COPYING
|
51
58
|
- ChangeLog
|
52
59
|
- readme.sj
|
53
60
|
- readme.txt
|
61
|
+
- ext/extconf.rb
|
54
62
|
has_rdoc: true
|
55
63
|
homepage: http://rjb.rubyforge.org/
|
56
64
|
licenses: []
|
@@ -61,22 +69,30 @@ rdoc_options: []
|
|
61
69
|
require_paths:
|
62
70
|
- lib
|
63
71
|
required_ruby_version: !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
64
73
|
requirements:
|
65
74
|
- - ">="
|
66
75
|
- !ruby/object:Gem::Version
|
76
|
+
hash: 51
|
77
|
+
segments:
|
78
|
+
- 1
|
79
|
+
- 8
|
80
|
+
- 2
|
67
81
|
version: 1.8.2
|
68
|
-
version:
|
69
82
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
70
84
|
requirements:
|
71
85
|
- - ">="
|
72
86
|
- !ruby/object:Gem::Version
|
87
|
+
hash: 3
|
88
|
+
segments:
|
89
|
+
- 0
|
73
90
|
version: "0"
|
74
|
-
version:
|
75
91
|
requirements:
|
76
92
|
- none
|
77
93
|
- JDK 5.0
|
78
94
|
rubyforge_project:
|
79
|
-
rubygems_version: 1.3.
|
95
|
+
rubygems_version: 1.3.7
|
80
96
|
signing_key:
|
81
97
|
specification_version: 3
|
82
98
|
summary: Ruby Java bridge
|