unageanu-javaclass 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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