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