Skip to content

Commit 070357f

Browse files
committed
Define build-in types by using Kernel#define_type
1 parent 3ea1e62 commit 070357f

1 file changed

Lines changed: 10 additions & 36 deletions

File tree

lib/java.rb

Lines changed: 10 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -47,42 +47,6 @@ def __java__
4747
@__java__
4848
end
4949

50-
def void(meth)
51-
define_typed_method(meth, :void, NilClass)
52-
end
53-
54-
def byte(meth)
55-
define_typed_method(meth, :byte, Integer) { |rtn| ::Java::BYTE === rtn }
56-
end
57-
58-
def short(meth)
59-
define_typed_method(meth, :short, Integer) { |rtn| ::Java::SHORT === rtn }
60-
end
61-
62-
def int(meth)
63-
define_typed_method(meth, :int, Integer) { |rtn| ::Java::INT === rtn }
64-
end
65-
66-
def long(meth)
67-
define_typed_method(meth, :long, Integer) { |rtn| ::Java::LONG === rtn }
68-
end
69-
70-
def float(meth)
71-
define_typed_method(meth, :float, Float)
72-
end
73-
74-
def double(meth)
75-
define_typed_method(meth, :double, Float)
76-
end
77-
78-
def bool(meth)
79-
define_typed_method(meth, :bool, Boolean)
80-
end
81-
82-
def char(meth)
83-
define_typed_method(meth, :char, String) { |rtn| rtn.length == 1 }
84-
end
85-
8650
def define_typed_method(meth, type, type_klass, &condition)
8751
__java__.send(:define_method, meth) do |*args, &block|
8852
::Java.assert_return_type(meth, type, type_klass, super(*args, &block), &condition)
@@ -94,3 +58,13 @@ module Boolean; end
9458

9559
TrueClass.send(:include, Boolean)
9660
FalseClass.send(:include, Boolean)
61+
62+
define_type(:void, NilClass)
63+
define_type(:byte, Integer) { |rtn| ::Java::BYTE === rtn }
64+
define_type(:short, Integer) { |rtn| ::Java::SHORT === rtn }
65+
define_type(:int, Integer) { |rtn| ::Java::INT === rtn }
66+
define_type(:long, Integer) { |rtn| ::Java::LONG === rtn }
67+
define_type(:float, Float)
68+
define_type(:double, Float)
69+
define_type(:bool, Boolean)
70+
define_type(:char, String) { |rtn| rtn.length == 1 }

0 commit comments

Comments
 (0)