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