, , Java.
( ), , .
Greeter:
import org.jruby.anno.JRubyMethod;
import org.jruby.runtime.ThreadContext;
import org.jruby.runtime.builtin.IRubyObject;
public class Greeter {
@JRubyMethod
public static void greet( ThreadContext context, IRubyObject self ) {
System.out.printf("Hello from %s%n", self);
}
}
GreeterService :
import org.jruby.Ruby;
import org.jruby.RubyModule;
import org.jruby.runtime.load.BasicLibraryService;
import java.io.IOException;
public class GreeterService implements BasicLibraryService {
@Override
public boolean basicLoad(final Ruby runtime) throws IOException {
RubyModule greeter = runtime.defineModule(Greeter.class.getSimpleName());
greeter.defineAnnotatedMethods(Greeter.class);
return true;
}
}
, , JRuby script:
require 'target/jruby-example.jar'
require 'greeter'
class MyClass
include Greeter
end
obj = MyClass.new
obj.greet
jruby-example.jar , . , , . , Enumerable.