rjb 1.5.3 → 1.5.4

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.
@@ -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