@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule klazz, String name, IRubyObject[] args, Block block) { switch (args.length) { case 0: return call(context, self, klazz, name, block); case 1: return call(context, self, klazz, name, args[0], block); case 2: return call(context, self, klazz, name, args[0], args[1], block); case 3: return call(context, self, klazz, name, args[0], args[1], args[2], block); default: final IRubyObject[] nargs = new IRubyObject[args.length + 1]; nargs[0] = context.runtime.newSymbol(name); System.arraycopy(args, 0, nargs, 1, args.length); return BlockInterfaceImpl.this.callImpl(context, klazz, block, nargs); } }
@Override public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule klazz, String name, IRubyObject[] args, Block block) { switch (args.length) { case 0: return call(context, self, klazz, name, block); case 1: return call(context, self, klazz, name, args[0], block); case 2: return call(context, self, klazz, name, args[0], args[1], block); case 3: return call(context, self, klazz, name, args[0], args[1], args[2], block); default: final IRubyObject[] nargs = new IRubyObject[args.length + 1]; nargs[0] = context.runtime.newSymbol(name); System.arraycopy(args, 0, nargs, 1, args.length); return BlockInterfaceImpl.this.callImpl(context, klazz, block, nargs); } }