Skip to content

Commit 563c402

Browse files
committed
Add java_method, java_alias, and java_send to interface modules.
Part of improvements to support #2857. Specs pending.
1 parent ab3b1d5 commit 563c402

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

core/src/main/java/org/jruby/java/invokers/StaticMethodInvoker.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ public StaticMethodInvoker(RubyClass host, Method method) {
2121
super(host, method);
2222
}
2323

24+
public StaticMethodInvoker(RubyModule host, Method method) {
25+
super(host, method);
26+
}
27+
2428
@Override
2529
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args) {
2630
JavaMethod method = (JavaMethod) findCallable(self, name, args, args.length);

core/src/main/java/org/jruby/java/proxies/JavaInterfaceTemplate.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public static RubyModule createJavaInterfaceTemplateModule(ThreadContext context
3737
singleton.addReadAttribute(context, "java_class");
3838
singleton.defineAnnotatedMethods(JavaInterfaceTemplate.class);
3939

40+
JavaInterfaceTemplate.defineAnnotatedMethods(Java.JavaProxyClassMethods.class);
41+
4042
return JavaInterfaceTemplate;
4143
}
4244

core/src/main/java/org/jruby/javasupport/Java.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -676,10 +676,10 @@ public static IRubyObject java_alias(ThreadContext context, IRubyObject clazz, I
676676

677677
private static IRubyObject getRubyMethod(ThreadContext context, IRubyObject clazz, String name, Class... argTypesClasses) {
678678
final Ruby runtime = context.runtime;
679-
if ( ! ( clazz instanceof RubyClass ) ) {
679+
if ( ! ( clazz instanceof RubyModule ) ) {
680680
throw runtime.newTypeError(clazz, runtime.getModule());
681681
}
682-
final RubyClass proxyClass = (RubyClass) clazz;
682+
final RubyModule proxyClass = (RubyModule) clazz;
683683

684684
final Method method = getMethodFromClass(context, clazz, name, argTypesClasses);
685685
final String prettyName = name + CodegenUtils.prettyParams(argTypesClasses);

0 commit comments

Comments
 (0)