unageanu-javaclass 0.0.1

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.
Files changed (71) hide show
  1. data/ChangeLog +0 -0
  2. data/README +4 -0
  3. data/lib/javaclass/accessflag.rb +279 -0
  4. data/lib/javaclass/attribute.rb +1061 -0
  5. data/lib/javaclass/base.rb +369 -0
  6. data/lib/javaclass/class.rb +282 -0
  7. data/lib/javaclass/constant.rb +522 -0
  8. data/lib/javaclass/member.rb +194 -0
  9. data/lib/javaclass/reader.rb +449 -0
  10. data/lib/javaclass.rb +8 -0
  11. data/sample/class_list.rb +22 -0
  12. data/sample/create_assert.rb +69 -0
  13. data/sample/java_class/HelloWorld.class +0 -0
  14. data/sample/java_class/com/example/Constants.class +0 -0
  15. data/sample/java_class/com/example/Deprecated.class +0 -0
  16. data/sample/java_class/com/example/InnerClass$1.class +0 -0
  17. data/sample/java_class/com/example/InnerClass$BasicInnerClass.class +0 -0
  18. data/sample/java_class/com/example/InnerClass$StaticInnerClass$InnerInnerClass.class +0 -0
  19. data/sample/java_class/com/example/InnerClass$StaticInnerClass$StaticInnerInnerClass.class +0 -0
  20. data/sample/java_class/com/example/InnerClass$StaticInnerClass.class +0 -0
  21. data/sample/java_class/com/example/InnerClass.class +0 -0
  22. data/sample/java_class/com/example/InnerClassImpl$1.class +0 -0
  23. data/sample/java_class/com/example/InnerClassImpl$1MethodInnerClass.class +0 -0
  24. data/sample/java_class/com/example/InnerClassImpl$2.class +0 -0
  25. data/sample/java_class/com/example/InnerClassImpl$BasicInnerClass2.class +0 -0
  26. data/sample/java_class/com/example/InnerClassImpl$StaticInnerClass2.class +0 -0
  27. data/sample/java_class/com/example/InnerClassImpl.class +0 -0
  28. data/sample/java_class/com/example/Kitten.class +0 -0
  29. data/sample/java_class/com/example/ThrowsException.class +0 -0
  30. data/sample/java_class/com/example/annotation/Annotated.class +0 -0
  31. data/sample/java_class/com/example/annotation/AnnotatedMethod$A.class +0 -0
  32. data/sample/java_class/com/example/annotation/AnnotatedMethod$B.class +0 -0
  33. data/sample/java_class/com/example/annotation/AnnotatedMethod$C.class +0 -0
  34. data/sample/java_class/com/example/annotation/AnnotatedMethod.class +0 -0
  35. data/sample/java_class/com/example/annotation/ClassAnnotationA.class +0 -0
  36. data/sample/java_class/com/example/annotation/HasDefaultValue.class +0 -0
  37. data/sample/java_class/com/example/annotation/RuntimeAnnotationA.class +0 -0
  38. data/sample/java_class/com/example/annotation/RuntimeAnnotationB.class +0 -0
  39. data/sample/java_class/com/example/annotation/RuntimeAnnotationC.class +0 -0
  40. data/sample/java_class/com/example/annotation/SourceAnnotationA.class +0 -0
  41. data/sample/java_class/com/example/types/TypeVariables.class +0 -0
  42. data/sample/java_src/HelloWorld.java +6 -0
  43. data/sample/java_src/com/example/Constants.java +45 -0
  44. data/sample/java_src/com/example/Deprecated.java +16 -0
  45. data/sample/java_src/com/example/InnerClass.java +23 -0
  46. data/sample/java_src/com/example/InnerClassImpl.java +31 -0
  47. data/sample/java_src/com/example/Kitten.java +78 -0
  48. data/sample/java_src/com/example/ThrowsException.java +12 -0
  49. data/sample/java_src/com/example/annotation/Annotated.java +47 -0
  50. data/sample/java_src/com/example/annotation/AnnotatedMethod.java +18 -0
  51. data/sample/java_src/com/example/annotation/ClassAnnotationA.java +10 -0
  52. data/sample/java_src/com/example/annotation/HasDefaultValue.java +10 -0
  53. data/sample/java_src/com/example/annotation/RuntimeAnnotationA.java +15 -0
  54. data/sample/java_src/com/example/annotation/RuntimeAnnotationB.java +10 -0
  55. data/sample/java_src/com/example/annotation/RuntimeAnnotationC.java +8 -0
  56. data/sample/java_src/com/example/annotation/SourceAnnotationA.java +10 -0
  57. data/sample/java_src/com/example/types/TypeVariables.java +19 -0
  58. data/sample/sample.rb +27 -0
  59. data/test/all-tests.rb +32 -0
  60. data/test/java_class/com/example/TestClass1$1.class +0 -0
  61. data/test/java_class/com/example/TestClass1$Hoo.class +0 -0
  62. data/test/java_class/com/example/TestClass1$Var.class +0 -0
  63. data/test/java_class/com/example/TestClass1.class +0 -0
  64. data/test/java_src/com/example/TestClass1.java +28 -0
  65. data/test/test_access_flag.rb +205 -0
  66. data/test/test_attribute.rb +955 -0
  67. data/test/test_class.rb +90 -0
  68. data/test/test_constant.rb +830 -0
  69. data/test/test_member.rb +282 -0
  70. data/test/test_util.rb +20 -0
  71. metadata +157 -0
@@ -0,0 +1,282 @@
1
+ #!/usr/bin/ruby
2
+
3
+ $: << "../lib"
4
+
5
+ require "test/unit"
6
+
7
+ require "javaclass"
8
+ require "test_util"
9
+
10
+ module JavaClass
11
+
12
+
13
+ #
14
+ #===Memberのテスト
15
+ #
16
+ class MemberTest < Test::Unit::TestCase
17
+
18
+ include TestUtil
19
+
20
+ def setup
21
+ @java_class = JavaClass::Class.new
22
+
23
+ @java_class.constant_pool[1] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "ConstantValue" )
24
+ @java_class.constant_pool[2] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "Exceptions" )
25
+ @java_class.constant_pool[3] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "InnerClasses" )
26
+ @java_class.constant_pool[4] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "EnclosingMethod" )
27
+ @java_class.constant_pool[5] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "Deprecated" )
28
+ @java_class.constant_pool[6] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "Synthetic" )
29
+ @java_class.constant_pool[7] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "SourceFile" )
30
+ @java_class.constant_pool[8] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "SourceDebugExtension" )
31
+ @java_class.constant_pool[9] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "Signature" )
32
+ @java_class.constant_pool[10] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "RuntimeVisibleAnnotations" )
33
+ @java_class.constant_pool[11] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "RuntimeInvisibleParameterAnnotations" )
34
+ @java_class.constant_pool[12] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "AnnotationDefault" )
35
+ @java_class.constant_pool[13] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "Code" )
36
+ @java_class.constant_pool[14] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "LineNumberTable" )
37
+ @java_class.constant_pool[15] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "LocalVariableTable" )
38
+ @java_class.constant_pool[16] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "LocalVariableTypeTable" )
39
+ @java_class.constant_pool[17] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "RuntimeInvisibleAnnotations" )
40
+ @java_class.constant_pool[18] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "RuntimeVisibleParameterAnnotations" )
41
+
42
+ @java_class.constant_pool[30] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "aaa" )
43
+ @java_class.constant_pool[31] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "bbb" )
44
+ @java_class.constant_pool[32] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "ccc" )
45
+
46
+ @java_class.constant_pool[40] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "com/foo/Hoge" )
47
+ @java_class.constant_pool[41] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "com/foo/Var" )
48
+ @java_class.constant_pool[42] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "com/foo/Piyo" )
49
+ @java_class.constant_pool[43] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "java/lang/Exception" )
50
+ @java_class.constant_pool[44] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "java/lang/Throwable" )
51
+ @java_class.constant_pool[45] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "com/foo/HogeException" )
52
+ @java_class.constant_pool[46] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "FOO" )
53
+ @java_class.constant_pool[47] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "VAR" )
54
+ @java_class.constant_pool[48] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "Lcom/foo/Hoge;" )
55
+ @java_class.constant_pool[49] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "Lcom/foo/Var;" )
56
+
57
+ @java_class.constant_pool[50] = IntegerConstant.new( @java_class, Constant::CONSTANT_Integer, 0 )
58
+ @java_class.constant_pool[51] = IntegerConstant.new( @java_class, Constant::CONSTANT_Integer, 10 )
59
+ @java_class.constant_pool[52] = IntegerConstant.new( @java_class, Constant::CONSTANT_Integer, 100 )
60
+
61
+ @java_class.constant_pool[60] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "(B[ILcom/foo/Var;)Lcom/foo/Hoge;" )
62
+ @java_class.constant_pool[61] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "()[Lcom/foo/Hoge;" )
63
+ @java_class.constant_pool[71] = UTF8Constant.new( @java_class, Constant::CONSTANT_Utf8, "()[Lcom/foo/Hoge;" )
64
+
65
+ @java_class.constant_pool[100] = ClassConstant.new( @java_class, Constant::CONSTANT_Class, 40 )
66
+ @java_class.constant_pool[101] = ClassConstant.new( @java_class, Constant::CONSTANT_Class, 41 )
67
+ @java_class.constant_pool[102] = ClassConstant.new( @java_class, Constant::CONSTANT_Class, 42 )
68
+ @java_class.constant_pool[103] = ClassConstant.new( @java_class, Constant::CONSTANT_Class, 43 )
69
+ @java_class.constant_pool[104] = ClassConstant.new( @java_class, Constant::CONSTANT_Class, 44 )
70
+ @java_class.constant_pool[105] = ClassConstant.new( @java_class, Constant::CONSTANT_Class, 45 )
71
+
72
+ @java_class.constant_pool[120] = NameAndTypeConstant.new( @java_class, Constant::CONSTANT_NameAndType, 30, 40 )
73
+ @java_class.constant_pool[121] = NameAndTypeConstant.new( @java_class, Constant::CONSTANT_NameAndType, 31, 41 )
74
+ end
75
+
76
+ def teardown
77
+ end
78
+
79
+ #
80
+ #=== Fieldのテスト
81
+ #
82
+ def test_Field
83
+
84
+ f = Field.new( @java_class )
85
+ f.access_flag = FieldAccessFlag.new( FieldAccessFlag::ACC_PUBLIC | FieldAccessFlag::ACC_STATIC )
86
+ f.name_index = 30
87
+ f.descriptor_index = 48
88
+ f.attributes = {
89
+ "Deprecated"=>DeprecatedAttribute.new( @java_class, 5 ),
90
+ "ConstantValue"=>ConstantValueAttribute.new( @java_class, 1, 51),
91
+ "RuntimeVisibleAnnotations"=>AnnotationsAttribute.new( @java_class, 10, [
92
+ Annotation.new( @java_class, 48 )
93
+ ]),
94
+ "RuntimeInvisibleAnnotations"=>AnnotationsAttribute.new( @java_class, 17, [
95
+ Annotation.new( @java_class, 49 )
96
+ ])
97
+ }
98
+ assert_field( f ) {|a|
99
+ assert_equal a.name, "aaa"
100
+ assert_equal a.descriptor, "Lcom/foo/Hoge;"
101
+ assert_equal a.static_value, 10
102
+ assert_equal a.signature, nil
103
+ assert_equal a.deprecated?, true
104
+ assert_equal a.annotations, [Annotation.new( @java_class, 48 ), Annotation.new( @java_class, 49 )]
105
+ assert_equal a.to_s, <<-STR.chomp!
106
+ // !deprecated!
107
+ @com.foo.Hoge
108
+ @com.foo.Var
109
+ public static com.foo.Hoge aaa = 10
110
+ STR
111
+ assert_equal a.dump,
112
+ "0009001E 00300004 00010000 00020033\n" +
113
+ "00050000 00000011 00000006 00010031\n" +
114
+ "0000000A 00000006 00010030 0000"
115
+ assert_equal a.to_bytes, [
116
+ 0x00, 0x09, 0x00, 0x1E, 0x00, 0x30, 0x00, 0x04,
117
+ 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x33,
118
+ 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11,
119
+ 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x31,
120
+ 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x06,
121
+ 0x00, 0x01, 0x00, 0x30, 0x00, 0x00 ]
122
+ }
123
+
124
+
125
+ f.access_flag.on( FieldAccessFlag::ACC_FINAL ).off( FieldAccessFlag::ACC_STATIC )
126
+ f.name_index = 31
127
+ f.descriptor_index = 49
128
+ f.attributes = {
129
+ "Signature"=>SignatureAttribute.new( @java_class, 9, 41 ),
130
+ "RuntimeInvisibleAnnotations"=>AnnotationsAttribute.new( @java_class, 17, [
131
+ Annotation.new( @java_class, 49 )
132
+ ])
133
+ }
134
+ assert_field( f ) {|a|
135
+ assert_equal a.name, "bbb"
136
+ assert_equal a.descriptor, "Lcom/foo/Var;"
137
+ assert_equal a.static_value, nil
138
+ assert_equal a.signature, "com/foo/Var"
139
+ assert_equal a.deprecated?, false
140
+ assert_equal a.annotations, [Annotation.new( @java_class, 49 )]
141
+ assert_equal a.to_s, <<-STR.chomp!
142
+ // signature com/foo/Var
143
+ @com.foo.Var
144
+ public final com.foo.Var bbb
145
+ STR
146
+ assert_equal a.dump,
147
+ "0011001F 00310002 00110000 00060001\n"+
148
+ "00310000 00090000 00020029"
149
+ assert_equal a.to_bytes, [
150
+ 0x00, 0x11, 0x00, 0x1F, 0x00, 0x31, 0x00, 0x02,
151
+ 0x00, 0x11, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01,
152
+ 0x00, 0x31, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00,
153
+ 0x00, 0x02, 0x00, 0x29 ]
154
+ }
155
+ end
156
+
157
+
158
+ #
159
+ #=== Methodのテスト
160
+ #
161
+ def test_Method
162
+
163
+ m = Method.new( @java_class )
164
+ m.access_flag = MethodAccessFlag.new( MethodAccessFlag::ACC_PUBLIC | MethodAccessFlag::ACC_STATIC )
165
+ m.name_index = 30
166
+ m.descriptor_index = 60
167
+ m.attributes = {
168
+ "Deprecated"=>DeprecatedAttribute.new( @java_class, 5 ),
169
+ "Exceptions"=>ExceptionsAttribute.new( @java_class, 2, [103,104]),
170
+ "RuntimeVisibleAnnotations"=>AnnotationsAttribute.new( @java_class, 10, [
171
+ Annotation.new( @java_class, 48 )
172
+ ]),
173
+ "RuntimeInvisibleAnnotations"=>AnnotationsAttribute.new( @java_class, 17, [
174
+ Annotation.new( @java_class, 49 )
175
+ ]),
176
+ "RuntimeVisibleParameterAnnotations"=>ParameterAnnotationsAttribute.new( @java_class, 18, [
177
+ [Annotation.new( @java_class, 49 )],
178
+ [],
179
+ [Annotation.new( @java_class, 48 )]
180
+ ]),
181
+ "RuntimeInvisibleParameterAnnotations"=>ParameterAnnotationsAttribute.new( @java_class, 11, [
182
+ [Annotation.new( @java_class, 48 )],
183
+ [],
184
+ []
185
+ ]),
186
+ "Code"=> CodeAttribute.new( @java_class, 13, 10, 8, [0x05, 0x06], [], {} )
187
+ }
188
+ assert_method( m ) {|a|
189
+ assert_equal a.name, "aaa"
190
+ assert_equal a.descriptor, "(B[ILcom/foo/Var;)Lcom/foo/Hoge;"
191
+ assert_equal a.parameters, ["byte", "int[]", "com.foo.Var"]
192
+ assert_equal a.return_type, "com.foo.Hoge"
193
+ assert_equal a.exceptions, ["java.lang.Exception", "java.lang.Throwable"]
194
+ assert_equal a.signature, nil
195
+ assert_equal a.deprecated?, true
196
+ assert_equal a.annotations, [Annotation.new( @java_class, 48 ), Annotation.new( @java_class, 49 )]
197
+ assert_equal a.parameter_annotations(0), [Annotation.new( @java_class, 49 ), Annotation.new( @java_class, 48 )]
198
+ assert_equal a.parameter_annotations(1), []
199
+ assert_equal a.parameter_annotations(2), [Annotation.new( @java_class, 48 )]
200
+ assert_equal a.to_s, <<-STR.chomp!
201
+ // !deprecated!
202
+ @com.foo.Hoge
203
+ @com.foo.Var
204
+ public static com.foo.Hoge aaa ( @com.foo.Var
205
+ @com.foo.Hoge byte arg1, int[] arg2, @com.foo.Hoge com.foo.Var arg3 )
206
+ throws java.lang.Exception, java.lang.Throwable {
207
+ }
208
+ STR
209
+ assert_equal a.dump,
210
+ "0009001E 003C0007 000D0000 000E000A\n" +
211
+ "00080000 00020506 00000000 00050000\n" +
212
+ "00000002 00000006 00020067 00680011\n" +
213
+ "00000006 00010031 0000000B 0000000B\n" +
214
+ "03000100 30000000 00000000 0A000000\n" +
215
+ "06000100 30000000 12000000 0F030001\n" +
216
+ "00310000 00000001 00300000"
217
+ assert_equal a.to_bytes, [
218
+ 0x00, 0x09, 0x00, 0x1E, 0x00, 0x3C, 0x00, 0x07,
219
+ 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x0A,
220
+ 0x00, 0x08, 0x00, 0x00, 0x00, 0x02, 0x05, 0x06,
221
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00,
222
+ 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x06,
223
+ 0x00, 0x02, 0x00, 0x67, 0x00, 0x68, 0x00, 0x11,
224
+ 0x00, 0x00, 0x00, 0x06, 0x00, 0x01, 0x00, 0x31,
225
+ 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0B,
226
+ 0x03, 0x00, 0x01, 0x00, 0x30, 0x00, 0x00, 0x00,
227
+ 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00,
228
+ 0x06, 0x00, 0x01, 0x00, 0x30, 0x00, 0x00, 0x00,
229
+ 0x12, 0x00, 0x00, 0x00, 0x0F, 0x03, 0x00, 0x01,
230
+ 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
231
+ 0x00, 0x30, 0x00, 0x00 ]
232
+ }
233
+
234
+ m.access_flag.on( MethodAccessFlag::ACC_PRIVATE ).off( MethodAccessFlag::ACC_STATIC ).off( MethodAccessFlag::ACC_PUBLIC )
235
+ m.name_index = 31
236
+ m.descriptor_index = 61
237
+ m.attributes = {
238
+ "Signature"=>SignatureAttribute.new( @java_class, 9, 71 ),
239
+ "RuntimeVisibleAnnotations"=>AnnotationsAttribute.new( @java_class, 10, [
240
+ Annotation.new( @java_class, 49 )
241
+ ])
242
+ }
243
+ assert_method( m ) {|a|
244
+ assert_equal a.name, "bbb"
245
+ assert_equal a.descriptor, "()[Lcom/foo/Hoge;"
246
+ assert_equal a.parameters, []
247
+ assert_equal a.return_type, "com.foo.Hoge[]"
248
+ assert_equal a.exceptions, []
249
+ assert_equal a.signature, "()[Lcom/foo/Hoge;"
250
+ assert_equal a.deprecated?, false
251
+ assert_equal a.annotations, [Annotation.new( @java_class, 49 )]
252
+ assert_equal a.parameter_annotations(0), []
253
+ assert_equal a.to_s, <<-STR.chomp!
254
+ // signature ()[Lcom/foo/Hoge;
255
+ @com.foo.Var
256
+ private com.foo.Hoge[] bbb ( )
257
+ STR
258
+ assert_equal a.dump,
259
+ "0002001F 003D0002 000A0000 00060001\n"+
260
+ "00310000 00090000 00020047"
261
+ assert_equal a.to_bytes, [
262
+ 0x00, 0x02, 0x00, 0x1F, 0x00, 0x3D, 0x00, 0x02,
263
+ 0x00, 0x0A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x01,
264
+ 0x00, 0x31, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00,
265
+ 0x00, 0x02, 0x00, 0x47]
266
+ }
267
+ end
268
+
269
+ def assert_field( field, &block )
270
+ assert_to_byte_and_read field, block, proc {|io|
271
+ JavaClass.read_field( io, @java_class )
272
+ }
273
+ end
274
+
275
+ def assert_method( field, &block )
276
+ assert_to_byte_and_read field, block, proc {|io|
277
+ JavaClass.read_method( io, @java_class )
278
+ }
279
+ end
280
+ end
281
+
282
+ end
data/test/test_util.rb ADDED
@@ -0,0 +1,20 @@
1
+
2
+ module JavaClass
3
+ require "test/unit"
4
+
5
+ module TestUtil
6
+ # オブジェクトをバイト配列に変換→再読み込みし、同じオブジェクトが作成されることを評価する。
7
+ def assert_to_byte_and_read( obj, assertion, reader )
8
+ assertion.call(obj)
9
+ obj2 = reader.call( ArrayIO.new( obj.to_bytes ) )
10
+ assertion.call(obj2)
11
+ assert_equal( obj, obj2 )
12
+ end
13
+
14
+ # リソースファイルのパスを取得する。
15
+ def resource( path )
16
+ File.dirname(__FILE__) + path
17
+ end
18
+ end
19
+
20
+ end
metadata ADDED
@@ -0,0 +1,157 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: unageanu-javaclass
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Masaya Yamauchi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-06-13 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description:
17
+ email: y-masaya@red.hot.co.jp
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files:
23
+ - README
24
+ files:
25
+ - test/java_class
26
+ - test/java_class/com
27
+ - test/java_class/com/example
28
+ - test/java_class/com/example/TestClass1.class
29
+ - test/java_class/com/example/TestClass1$1.class
30
+ - test/java_class/com/example/TestClass1$Hoo.class
31
+ - test/java_class/com/example/TestClass1$Var.class
32
+ - test/test_access_flag.rb
33
+ - test/test_util.rb
34
+ - test/test_member.rb
35
+ - test/java_src
36
+ - test/java_src/com
37
+ - test/java_src/com/example
38
+ - test/java_src/com/example/TestClass1.java
39
+ - test/test_class.rb
40
+ - test/test_attribute.rb
41
+ - test/test_constant.rb
42
+ - test/all-tests.rb
43
+ - lib/javaclass.rb
44
+ - lib/javaclass
45
+ - lib/javaclass/accessflag.rb
46
+ - lib/javaclass/constant.rb
47
+ - lib/javaclass/attribute.rb
48
+ - lib/javaclass/base.rb
49
+ - lib/javaclass/member.rb
50
+ - lib/javaclass/class.rb
51
+ - lib/javaclass/reader.rb
52
+ - sample/sample.rb
53
+ - sample/java_class
54
+ - sample/java_class/com
55
+ - sample/java_class/com/example
56
+ - sample/java_class/com/example/InnerClass$StaticInnerClass$StaticInnerInnerClass.class
57
+ - sample/java_class/com/example/InnerClass$BasicInnerClass.class
58
+ - sample/java_class/com/example/types
59
+ - sample/java_class/com/example/types/TypeVariables.class
60
+ - sample/java_class/com/example/InnerClass$1.class
61
+ - sample/java_class/com/example/InnerClass.class
62
+ - sample/java_class/com/example/InnerClass$StaticInnerClass.class
63
+ - sample/java_class/com/example/InnerClassImpl$1MethodInnerClass.class
64
+ - sample/java_class/com/example/ThrowsException.class
65
+ - sample/java_class/com/example/Constants.class
66
+ - sample/java_class/com/example/Deprecated.class
67
+ - sample/java_class/com/example/Kitten.class
68
+ - sample/java_class/com/example/InnerClassImpl$1.class
69
+ - sample/java_class/com/example/InnerClassImpl$2.class
70
+ - sample/java_class/com/example/annotation
71
+ - sample/java_class/com/example/annotation/HasDefaultValue.class
72
+ - sample/java_class/com/example/annotation/ClassAnnotationA.class
73
+ - sample/java_class/com/example/annotation/AnnotatedMethod$A.class
74
+ - sample/java_class/com/example/annotation/SourceAnnotationA.class
75
+ - sample/java_class/com/example/annotation/AnnotatedMethod$B.class
76
+ - sample/java_class/com/example/annotation/RuntimeAnnotationA.class
77
+ - sample/java_class/com/example/annotation/AnnotatedMethod.class
78
+ - sample/java_class/com/example/annotation/AnnotatedMethod$C.class
79
+ - sample/java_class/com/example/annotation/Annotated.class
80
+ - sample/java_class/com/example/annotation/RuntimeAnnotationB.class
81
+ - sample/java_class/com/example/annotation/RuntimeAnnotationC.class
82
+ - sample/java_class/com/example/InnerClassImpl$StaticInnerClass2.class
83
+ - sample/java_class/com/example/InnerClassImpl.class
84
+ - sample/java_class/com/example/InnerClass$StaticInnerClass$InnerInnerClass.class
85
+ - sample/java_class/com/example/InnerClassImpl$BasicInnerClass2.class
86
+ - sample/java_class/HelloWorld.class
87
+ - sample/class_list.rb
88
+ - sample/java_src
89
+ - sample/java_src/com
90
+ - sample/java_src/com/example
91
+ - sample/java_src/com/example/Kitten.java
92
+ - sample/java_src/com/example/types
93
+ - sample/java_src/com/example/types/TypeVariables.java
94
+ - sample/java_src/com/example/Deprecated.java
95
+ - sample/java_src/com/example/ThrowsException.java
96
+ - sample/java_src/com/example/Constants.java
97
+ - sample/java_src/com/example/annotation
98
+ - sample/java_src/com/example/annotation/ClassAnnotationA.java
99
+ - sample/java_src/com/example/annotation/AnnotatedMethod.java
100
+ - sample/java_src/com/example/annotation/HasDefaultValue.java
101
+ - sample/java_src/com/example/annotation/RuntimeAnnotationA.java
102
+ - sample/java_src/com/example/annotation/RuntimeAnnotationB.java
103
+ - sample/java_src/com/example/annotation/RuntimeAnnotationC.java
104
+ - sample/java_src/com/example/annotation/SourceAnnotationA.java
105
+ - sample/java_src/com/example/annotation/Annotated.java
106
+ - sample/java_src/com/example/InnerClass.java
107
+ - sample/java_src/com/example/InnerClassImpl.java
108
+ - sample/java_src/HelloWorld.java
109
+ - sample/create_assert.rb
110
+ - README
111
+ - ChangeLog
112
+ has_rdoc: true
113
+ homepage: http://github.com/unageanu/javaclass/tree/master
114
+ post_install_message:
115
+ rdoc_options:
116
+ - --main
117
+ - README
118
+ require_paths:
119
+ - lib
120
+ required_ruby_version: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: "0"
125
+ version:
126
+ required_rubygems_version: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: "0"
131
+ version:
132
+ requirements: []
133
+
134
+ rubyforge_project:
135
+ rubygems_version: 1.0.1
136
+ signing_key:
137
+ specification_version: 2
138
+ summary: javaclass is a java class file parser for ruby.
139
+ test_files:
140
+ - test/java_class
141
+ - test/java_class/com
142
+ - test/java_class/com/example
143
+ - test/java_class/com/example/TestClass1.class
144
+ - test/java_class/com/example/TestClass1$1.class
145
+ - test/java_class/com/example/TestClass1$Hoo.class
146
+ - test/java_class/com/example/TestClass1$Var.class
147
+ - test/test_access_flag.rb
148
+ - test/test_util.rb
149
+ - test/test_member.rb
150
+ - test/java_src
151
+ - test/java_src/com
152
+ - test/java_src/com/example
153
+ - test/java_src/com/example/TestClass1.java
154
+ - test/test_class.rb
155
+ - test/test_attribute.rb
156
+ - test/test_constant.rb
157
+ - test/all-tests.rb