rjb 1.5.3 → 1.5.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,8 @@
1
1
  #ifndef EXTCONF_H
2
2
  #define EXTCONF_H
3
3
  #define HAVE_JNI_H 1
4
+ #define HAVE_NL_LANGINFO 1
4
5
  #define HAVE_SETLOCALE 1
5
6
  #define HAVE_GETENV 1
6
- #define RJB_RUBY_VERSION_CODE 212
7
+ #define RJB_RUBY_VERSION_CODE 230
7
8
  #endif
@@ -53,7 +53,6 @@ else
53
53
  raise "JAVA_HOME is not set."
54
54
  end
55
55
 
56
-
57
56
  def create_rjb_makefile
58
57
  if have_header("jni.h")
59
58
  have_func("locale_charset", "iconv.h")
data/ext/rjb.c CHANGED
@@ -14,7 +14,7 @@
14
14
  *
15
15
  */
16
16
 
17
- #define RJB_VERSION "1.5.3"
17
+ #define RJB_VERSION "1.5.4"
18
18
 
19
19
  #include "ruby.h"
20
20
  #include "extconf.h"
@@ -1159,6 +1159,17 @@ static void rv2jarray(JNIEnv* jenv, VALUE val, jvalue* jv, const char* psig, int
1159
1159
  rb_str_append(val, src);
1160
1160
  }
1161
1161
  }
1162
+ else if (TYPE(val) == T_ARRAY && *(psig + 1) == 'C')
1163
+ {
1164
+ int i;
1165
+ jsize len = (*jenv)->GetArrayLength(jenv, jv->l);
1166
+ jchar* p = (*jenv)->GetCharArrayElements(jenv, jv->l, NULL);
1167
+ rb_ary_clear(val);
1168
+ for (i = 0; i < len; i++, p++)
1169
+ {
1170
+ rb_ary_push(val, INT2FIX(*p));
1171
+ }
1172
+ }
1162
1173
  (*jenv)->DeleteLocalRef(jenv, jv->l);
1163
1174
  }
1164
1175
  else
data/readme.txt CHANGED
@@ -1,5 +1,7 @@
1
1
  Rjb is Ruby-Java bridge using Java Native Interface.
2
2
 
3
+ http://www.slideshare.net/artonx/j-ruby-kaigi-2010
4
+
3
5
  How to install
4
6
 
5
7
  you need to install Java2 sdk, and setup JAVA_HOME enviromental varible except for OS X.
@@ -0,0 +1,11 @@
1
+ require 'rjb'
2
+ p Rjb::VERSION
3
+ Rjb::load
4
+ CharArrayReader = Rjb::import('java.io.CharArrayReader')
5
+ reader = CharArrayReader.new([48, 49, 50, 51, 52, 53])
6
+ loop do
7
+ ch = reader.read
8
+ break if ch < 0
9
+ p ch
10
+ end
11
+ reader.close
@@ -0,0 +1,12 @@
1
+ require 'rjb'
2
+ p Rjb::VERSION
3
+ Rjb::load
4
+ JString = Rjb::import('java.lang.String')
5
+ CharArrayReader = Rjb::import('java.io.CharArrayReader')
6
+ reader = CharArrayReader.new([48, 49, 50, 51, 52, 53])
7
+ buffer = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
8
+ p buffer
9
+ len = reader.read(buffer, 0, buffer.length)
10
+ p len
11
+ p buffer
12
+ reader.close
@@ -923,5 +923,15 @@ class TestRjb < Test::Unit::TestCase
923
923
  assert_equal s1.toString, e.toString
924
924
  assert_equal s1.toString, u.toString
925
925
  end
926
+
927
+ def test_bothdirection_chararray
928
+ charArrayReader = import('java.io.CharArrayReader')
929
+ org = [48, 49, 50, 51, 52, 53]
930
+ reader = charArrayReader.new(org)
931
+ buffer = Array.new(32, 0)
932
+ len = reader.read(buffer, 0, buffer.size)
933
+ assert_equal org.size, len
934
+ assert_equal org, buffer[0...len]
935
+ end
926
936
  end
927
937
 
metadata CHANGED
@@ -1,17 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rjb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.3
4
+ version: 1.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - arton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-20 00:00:00.000000000 Z
11
+ date: 2015-11-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: |
14
- RJB is a bridge program that connect between Ruby and Java with Java Native Interface.
13
+ description: 'RJB is a bridge program that connect between Ruby and Java with Java
14
+ Native Interface.
15
+
16
+ '
15
17
  email: artonx@gmail.com
16
18
  executables: []
17
19
  extensions:
@@ -67,6 +69,8 @@ files:
67
69
  - test/js.rb
68
70
  - test/listtest.rb
69
71
  - test/osx_jvmcheck.rb
72
+ - test/reader.rb
73
+ - test/reader2.rb
70
74
  - test/rjbtest.jar
71
75
  - test/test.rb
72
76
  - test/test_osxjvm.rb
@@ -94,7 +98,7 @@ requirements:
94
98
  - none
95
99
  - JDK 5.0
96
100
  rubyforge_project: rjb
97
- rubygems_version: 2.2.2
101
+ rubygems_version: 2.5.0
98
102
  signing_key:
99
103
  specification_version: 4
100
104
  summary: Ruby Java bridge