hellojava 0.0.2-java → 0.0.4-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d0c2ffdb6d2410fbf8dd873ed900d3fc7039fe7b8b049311a2b534e6fa485ed2
4
- data.tar.gz: 9123d1fd37b94823905cf7bd1c3f48202e57b64a984c7801e8f0043882b87a60
3
+ metadata.gz: 85d5257583e5e4c9fe0f8cfdc6670731efc2c60a615f69c4f4aebb6cec3d072a
4
+ data.tar.gz: f52eaef3c17a67b13a7ba569f11a94ab06947073b22f82e753e2127bf653ad41
5
5
  SHA512:
6
- metadata.gz: 1d5d2c1a4cfdcdc7f9204700b7665b637e19f147b37407b76d156840e102289eb4edd3166eefc24f8277380f44d068f02a42c7a90b025a1552dcf8b1b7e624e6
7
- data.tar.gz: 0f02ff2814a869a34f0c936fc7ba54a4cf84014f917198b8dc8395587ef19256b4831738b4b0b577070ea099d5c9b27013ef0723eff28563e4a071a3f896f615
6
+ metadata.gz: 7c7e85c556980fbdae896014869b9dd7e2cbe811ab2912fc40fd555c85d39e3a6b2063378df5ba4d798adc87948f4a40fc8220aa711c64784f5a263c802ef010
7
+ data.tar.gz: d6fc7296259986a9bb8e32205cdf1dcfc28b3160decb7da3ed1ffc10213a2c34e49bd8ba1d945f20fb6174b0d2ceafee53c29575547a486421a00953d4471164
data/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.0.4] - 2023-11-03
6
+
7
+ ### Added
8
+ - Add parameter test of function type.
9
+
10
+ ## [0.0.3] - 2023-10-21
11
+
12
+ ### Added
13
+ - Add parameter test of A two-dimensional array.
14
+
5
15
  ## [0.0.2] - 2023-09-27
6
16
 
7
17
  ### Added
@@ -1,3 +1,5 @@
1
+ import java.util.ArrayList;
2
+
1
3
  public class JavaCallTest {
2
4
  public static String str1() {
3
5
  return "str1";
@@ -5,5 +7,15 @@ public class JavaCallTest {
5
7
  public String str2() {
6
8
  return "str2";
7
9
  }
10
+ public static void sub1(String fname, double[][] vals) {
11
+ System.out.printf("fname:%s size:%d\n", fname, vals.length);
12
+ for (int i = 0; i < vals.length; i++) {
13
+ System.out.printf("vals[%d] size:%d\n", i, vals[i].length);
14
+ for (int j = 0; j < vals[i].length; j++) {
15
+ System.out.printf(" %f", vals[i][j]);
16
+ }
17
+ System.out.println();
18
+ }
19
+ }
8
20
  }
9
21
 
@@ -0,0 +1,20 @@
1
+ import java.util.function.Function;
2
+ import java.util.function.Consumer;
3
+ import java.util.function.Predicate;
4
+ import java.util.function.Supplier;
5
+
6
+ public class JavaCallTest2 {
7
+ public static void funcType1(String str, Consumer<String> func) {
8
+ System.out.println("funcType1 in");
9
+ func.accept(str);
10
+ }
11
+ public static String funcType2(Supplier<String> func) {
12
+ System.out.println("funcType2 in");
13
+ return func.get();
14
+ }
15
+ public static double funcType3(double[] vals, Function<double[], Double> func) {
16
+ System.out.println("funcType3 in");
17
+ return func.apply(vals);
18
+ }
19
+ }
20
+
data/lib/hellojava.rb CHANGED
@@ -2,8 +2,10 @@ require 'java'
2
2
  require 'hellojava.jar'
3
3
  java_import 'java.lang.System'
4
4
  java_import 'JavaCallTest'
5
+ java_import 'JavaCallTest2'
5
6
  java_import 'Hoge'
6
7
 
8
+ # jrubyからjavaの呼び出し
7
9
  module HelloJavaLib
8
10
  # Systemクラス使用
9
11
  #
@@ -38,10 +40,86 @@ module HelloJavaLib
38
40
  p calc.add
39
41
  return
40
42
  end
43
+ # 引数に二次元配列の場合
44
+ #
45
+ # @overload func_d(fname, vals)
46
+ # @param [String] fname 文字列
47
+ # @param [Array] vals 二次元の配列(double[][])
48
+ # @return [void]
49
+ # @example
50
+ # vals = [
51
+ # [12.3, 22.5, 33.7, 44.6],
52
+ # [12.3, 22.5, 33.7, 44.6, 55.8],
53
+ # ]
54
+ # HelloJavaLib::func_d("fname.jpg", vals)
55
+ # =>
56
+ # fname:fname.jpg size:2
57
+ # vals[0] size:4
58
+ # 12.300000 22.500000 33.700000 44.600000
59
+ # vals[1] size:5
60
+ # 12.300000 22.500000 33.700000 44.600000 55.800000
61
+ def func_d(fname, vals)
62
+ JavaCallTest.sub1(
63
+ fname, vals.to_java(Java::double[])
64
+ );
65
+ return
66
+ end
67
+ # 引数に関数型の場合
68
+ class FuncTypes
69
+ class << self
70
+ # @overload func_type1(str, &func)
71
+ # @param [String] str 文字列
72
+ # @param [block] func 関数型(引数:文字列, 戻り値:なし)
73
+ # @return [void]
74
+ # @example
75
+ # HelloJavaLib::FuncTypes.func_type1("Hello") {|s|
76
+ # p s + "!!"
77
+ # next
78
+ # }
79
+ # =>
80
+ # funcType1 in
81
+ # "Hello!!"
82
+ def func_type1(str, &func)
83
+ JavaCallTest2.funcType1(str, func)
84
+ return
85
+ end
86
+ # @overload func_type2(&func)
87
+ # @param [block] func 関数型(引数:なし, 戻り値:文字列)
88
+ # @return [void]
89
+ # @example
90
+ # HelloJavaLib::FuncTypes.func_type2() {
91
+ # next "Hello"
92
+ # }
93
+ # =>
94
+ # funcType2 in
95
+ # "Hello"
96
+ def func_type2(&func)
97
+ p JavaCallTest2.funcType2(func)
98
+ return
99
+ end
100
+ # @overload func_type3(vals, &func)
101
+ # @param [Array] vals double型の配列(duble[])
102
+ # @param [block] func 関数型(引数:double[], 戻り値:double)
103
+ # @return [void]
104
+ # @example
105
+ # vals = [11, 22, 33, 44]
106
+ # HelloJavaLib::FuncTypes.func_type3(vals) {|xi|
107
+ # next xi.sum(0.0) / xi.length
108
+ # }
109
+ # =>
110
+ # funcType3 in
111
+ # 27.5
112
+ def func_type3(vals, &func)
113
+ p JavaCallTest2.funcType3(vals.to_java(Java::double), func)
114
+ return
115
+ end
41
116
 
117
+ end
118
+ end
42
119
  module_function :func_a
43
120
  module_function :func_b
44
121
  module_function :func_c
122
+ module_function :func_d
45
123
 
46
124
  end
47
125
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hellojava
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: java
6
6
  authors:
7
7
  - siranovel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-27 00:00:00.000000000 Z
11
+ date: 2023-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -64,6 +64,7 @@ files:
64
64
  - ext/hellojava/Calc.java
65
65
  - ext/hellojava/Hoge.java
66
66
  - ext/hellojava/JavaCallTest.java
67
+ - ext/hellojava/JavaCallTest2.java
67
68
  - lib/hellojava.rb
68
69
  homepage: http://github.com/siranovel/stdy4act
69
70
  licenses: