bitescript 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -0
- data/LICENSE.txt +9 -0
- data/Manifest.txt +20 -0
- data/README.txt +56 -0
- data/Rakefile +22 -0
- data/bin/bite +32 -0
- data/bin/bitec +22 -0
- data/examples/fib.bs +79 -0
- data/examples/mixed_bag.rb +73 -0
- data/examples/simple_loop.rb +24 -0
- data/lib/bitescript/asm.rb +17 -0
- data/lib/bitescript/builder.rb +459 -0
- data/lib/bitescript/bytecode.rb +415 -0
- data/lib/bitescript/signature.rb +117 -0
- data/lib/bitescript.rb +20 -0
- data/test/test_bitescript.rb +14 -0
- data/test/test_builder.rb +429 -0
- data/test/test_bytecode.rb +674 -0
- data/test/test_java_class.rb +58 -0
- data/test/test_signature.rb +68 -0
- metadata +91 -0
@@ -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
|