bitescript 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,58 @@
1
+ $:.unshift File.join(File.dirname(__FILE__),'..','lib')
2
+
3
+ require 'test/unit'
4
+ require 'bitescript'
5
+
6
+ class TestJavaClass < Test::Unit::TestCase
7
+ def test_constructor
8
+ cls = java.lang.String.java_class
9
+
10
+ cons1 = cls.constructor()
11
+ cons2 = cls.constructor(java.lang.String.java_class)
12
+
13
+ assert_not_nil cons1
14
+ assert_not_nil cons2
15
+ assert_equal [], cons1.parameter_types
16
+ assert_equal [java.lang.String.java_class], cons2.parameter_types
17
+
18
+ cls = BiteScript::FileBuilder.new('x').public_class('y')
19
+ cls.public_constructor()
20
+ cls.public_constructor(java.lang.String.java_class)
21
+
22
+ cons1 = cls.constructor()
23
+ cons2 = cls.constructor(java.lang.String.java_class)
24
+
25
+ assert_not_nil cons1
26
+ assert_not_nil cons2
27
+ assert_equal [], cons1.parameter_types
28
+ assert_equal [java.lang.String.java_class], cons2.parameter_types
29
+ end
30
+
31
+ def test_java_method
32
+ cls = java.lang.String.java_class
33
+
34
+ m1 = cls.java_method("toString")
35
+ m2 = cls.java_method("equals", java.lang.Object.java_class)
36
+
37
+ assert_not_nil m1
38
+ assert_not_nil m2
39
+ assert_equal java.lang.String.java_class, m1.return_type
40
+ assert_equal Java::boolean.java_class, m2.return_type
41
+ assert_equal [], m1.parameter_types
42
+ assert_equal [java.lang.Object.java_class], m2.parameter_types
43
+
44
+ cls = BiteScript::FileBuilder.new('x').public_class('y')
45
+ cls.public_method('toString', java.lang.String.java_class)
46
+ cls.public_method('equals', Java::boolean.java_class, java.lang.Object.java_class)
47
+
48
+ m1 = cls.java_method('toString')
49
+ m2 = cls.java_method('equals', java.lang.Object.java_class)
50
+
51
+ assert_not_nil m1
52
+ assert_not_nil m2
53
+ assert_equal java.lang.String.java_class, m1.return_type
54
+ assert_equal Java::boolean.java_class, m2.return_type
55
+ assert_equal [], m1.parameter_types
56
+ assert_equal [java.lang.Object.java_class], m2.parameter_types
57
+ end
58
+ end
@@ -0,0 +1,68 @@
1
+ require 'test/unit'
2
+ require 'bitescript/signature'
3
+
4
+ class TestSignature < Test::Unit::TestCase
5
+ include Java
6
+ import java.util.ArrayList
7
+ import java.lang.String
8
+ import java.lang.Byte
9
+ import java.lang.Short
10
+ import java.lang.Character
11
+ import java.lang.Boolean
12
+ import java.lang.Integer
13
+ import java.lang.Long
14
+ import java.lang.Float
15
+ import java.lang.Double
16
+ import java.lang.Void
17
+ import java.util.List
18
+
19
+ Signature = BiteScript::Signature
20
+
21
+ def test_classname
22
+ assert_equal("java.util.ArrayList", Signature.classname("java/util/ArrayList"))
23
+ end
24
+
25
+ def test_interface_path
26
+ assert_equal("java/util/List", Signature.path(List))
27
+ end
28
+
29
+ def test_interface_class_id
30
+ assert_equal("Ljava/util/List;", Signature.class_id(List))
31
+ end
32
+
33
+ def test_path
34
+ assert_equal("java/util/ArrayList", Signature.path(ArrayList))
35
+ end
36
+
37
+ def test_class_id
38
+ assert_equal("Ljava/util/ArrayList;", Signature.class_id(ArrayList))
39
+ assert_equal("Ljava/util/ArrayList;", Signature.ci(ArrayList))
40
+ assert_equal("B", Signature.class_id(Byte::TYPE))
41
+ assert_equal("Z", Signature.class_id(Boolean::TYPE))
42
+ assert_equal("S", Signature.class_id(Short::TYPE))
43
+ assert_equal("C", Signature.class_id(Character::TYPE))
44
+ assert_equal("I", Signature.class_id(Integer::TYPE))
45
+ assert_equal("J", Signature.class_id(Long::TYPE))
46
+ assert_equal("F", Signature.class_id(Float::TYPE))
47
+ assert_equal("D", Signature.class_id(Double::TYPE))
48
+ assert_equal("V", Signature.class_id(Void::TYPE))
49
+ end
50
+
51
+ def test_signature
52
+ assert_equal("(Ljava/util/ArrayList;)V", Signature.signature(Void::TYPE, ArrayList))
53
+ assert_equal("(Ljava/util/ArrayList;)V", Signature.sig(Void::TYPE, ArrayList))
54
+ assert_equal("([Ljava/lang/String;)V", Signature.signature(Void::TYPE, String[]))
55
+ assert_equal("(BZSCIJFDLjava/util/ArrayList;)V",
56
+ Signature.signature(
57
+ Void::TYPE,
58
+ Byte::TYPE,
59
+ Boolean::TYPE,
60
+ Short::TYPE,
61
+ Character::TYPE,
62
+ Integer::TYPE,
63
+ Long::TYPE,
64
+ Float::TYPE,
65
+ Double::TYPE,
66
+ ArrayList))
67
+ end
68
+ end
metadata ADDED
@@ -0,0 +1,91 @@
1
+ --- !ruby/object:Gem::Specification
2
+ required_ruby_version: !ruby/object:Gem::Requirement
3
+ requirements:
4
+ - - '>='
5
+ - !ruby/object:Gem::Version
6
+ version: "0"
7
+ version:
8
+ email:
9
+ - charles.nutter@sun.com
10
+ cert_chain: []
11
+
12
+ summary: BiteScript is a Ruby DSL for generating Java bytecode.
13
+ post_install_message:
14
+ extra_rdoc_files:
15
+ - History.txt
16
+ - LICENSE.txt
17
+ - Manifest.txt
18
+ - README.txt
19
+ homepage: http://kenai.com/projects/jvmscript
20
+ signing_key:
21
+ name: bitescript
22
+ rdoc_options:
23
+ - --main
24
+ - README.txt
25
+ autorequire:
26
+ rubyforge_project: jruby-extras
27
+ executables:
28
+ - bite
29
+ - bitec
30
+ description: BiteScript is a Ruby DSL for generating Java bytecode and classes.
31
+ specification_version: 2
32
+ default_executable:
33
+ files:
34
+ - History.txt
35
+ - LICENSE.txt
36
+ - Manifest.txt
37
+ - README.txt
38
+ - Rakefile
39
+ - bin/bite
40
+ - bin/bitec
41
+ - examples/fib.bs
42
+ - examples/mixed_bag.rb
43
+ - examples/simple_loop.rb
44
+ - lib/bitescript.rb
45
+ - lib/bitescript/asm.rb
46
+ - lib/bitescript/builder.rb
47
+ - lib/bitescript/bytecode.rb
48
+ - lib/bitescript/signature.rb
49
+ - test/test_bitescript.rb
50
+ - test/test_builder.rb
51
+ - test/test_bytecode.rb
52
+ - test/test_java_class.rb
53
+ - test/test_signature.rb
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - '>='
57
+ - !ruby/object:Gem::Version
58
+ version: "0"
59
+ version:
60
+ extensions: []
61
+
62
+ rubygems_version: 1.3.1
63
+ requirements: []
64
+
65
+ authors:
66
+ - charles.nutter@sun.comCharles Oliver Nutter
67
+ date: 2009-03-28 05:00:00 +00:00
68
+ platform: ruby
69
+ test_files:
70
+ - test/test_bitescript.rb
71
+ - test/test_builder.rb
72
+ - test/test_bytecode.rb
73
+ - test/test_java_class.rb
74
+ - test/test_signature.rb
75
+ version: !ruby/object:Gem::Version
76
+ version: 0.0.1
77
+ require_paths:
78
+ - lib
79
+ dependencies:
80
+ - !ruby/object:Gem::Dependency
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - '>='
84
+ - !ruby/object:Gem::Version
85
+ version: 1.11.0
86
+ version:
87
+ type: :development
88
+ version_requirement:
89
+ name: hoe
90
+ bindir: bin
91
+ has_rdoc: true