@Override public Object execute(RipperParser p, Object yyVal, Object[] yyVals, int yyTop) { yyVal = ((RubyArray)yyVals[-2+yyTop]).append(((IRubyObject)yyVals[0+yyTop])); return yyVal; } };
@Override public Object execute(RipperParser p, Object yyVal, Object[] yyVals, int yyTop) { yyVal = ((RubyArray)yyVals[-3+yyTop]).append(((IRubyObject)yyVals[0+yyTop])); return yyVal; } };
@Override public Object execute(RipperParser p, Object yyVal, Object[] yyVals, int yyTop) { yyVal = ((RubyArray)yyVals[-2+yyTop]).append(((IRubyObject)yyVals[0+yyTop])); return yyVal; } };
@Override public Object execute(RipperParser p, Object yyVal, Object[] yyVals, int yyTop) { yyVal = ((RubyArray)yyVals[-2+yyTop]).append(((IRubyObject)yyVals[0+yyTop])); return yyVal; } };
public IRubyObject yield(ThreadContext context, IRubyObject[] args) { IRubyObject packedArg = packEnumValues(context.runtime, args); result.append(packedArg); if (iter-- == 1) throw JumpException.SPECIAL_JUMP; return context.nil; } });
@Override public synchronized RubyArray append(IRubyObject item) { RubyArray result = super.append(item); set.add(convertToString(item)); return result; }
@Override public IRubyObject call(ThreadContext ctx, IRubyObject[] largs, Block blk) { if (n-- <= 0) { throw JumpException.SPECIAL_JUMP; } result.append(largs[0]); return runtime.getNil(); } });
public IRubyObject yield(ThreadContext context, IRubyObject[] args) { synchronized (result) { IRubyObject packedArg = packEnumValues(context, args); result.append(packedArg); if (--i == 0) throw JumpException.SPECIAL_JUMP; } return context.nil; } });
private RubyArray toJavaMethods(final Method[] methods, final boolean isStatic) { final Ruby runtime = getRuntime(); final RubyArray result = runtime.newArray(methods.length); for ( int i = 0; i < methods.length; i++ ) { final Method method = methods[i]; if ( isStatic == Modifier.isStatic(method.getModifiers()) ) { result.append( new JavaMethod(runtime, method) ); } } return result; }
@JRubyMethod(name = "push", alias = "append", rest = true) public RubyArray push(IRubyObject[] items) { if (items.length == 0) modifyCheck(); for (int i = 0; i < items.length; i++) { append(items[i]); } return this; }
@JRubyMethod(name = { "to_a", "entries" }) // @override Enumerable#to_a public static IRubyObject to_a(final ThreadContext context, final IRubyObject self, final Block block) { final Ruby runtime = context.runtime; final RubyArray ary = runtime.newArray(); java.lang.Iterable iterable = unwrapIfJavaObject(self); java.util.Iterator iterator = iterable.iterator(); while ( iterator.hasNext() ) { final Object value = iterator.next(); ary.append( convertJavaToUsableRubyObject(runtime, value) ); } return ary; }
protected void addMethodSymbols(Ruby runtime, Set<String> seen, RubyArray ary, boolean not, Visibility visibility) { for (Map.Entry<String, DynamicMethod> entry : getMethods().entrySet()) { String id = entry.getKey(); if (seen.add(id)) { // false - not added (already seen) DynamicMethod method = entry.getValue(); if ((!not && method.getVisibility() == visibility || (not && method.getVisibility() != visibility)) && !method.isUndefined()) { ary.append(runtime.newSymbol(id)); } } } }
public IRubyObject call(ThreadContext ctx, IRubyObject[] largs, Block blk) { IRubyObject larg = packEnumValues(ctx, largs); if (block.yield(ctx, larg).isTrue()) { synchronized (result) { result.append(larg); } } return ctx.nil; } });
@JRubyMethod public IRubyObject list(Block block) { RubyArray ary = RubyArray.newArray(getRuntime()); synchronized (rubyThreadList) { for (RubyThread thread : rubyThreadList) { if (thread != null) { ary.append(thread); } } } return ary; }
public IRubyObject call(ThreadContext ctx, IRubyObject[] largs, Block blk) { result[0].append(packEnumValues(ctx, largs)); if (result[0].size() == size) { block.yield(ctx, result[0]); result[0] = runtime.newArray(size); } return ctx.nil; } });
public IRubyObject call(ThreadContext ctx, IRubyObject[] largs, Block blk) { IRubyObject larg = packEnumValues(ctx, largs); RubyArray array = RubyArray.newBlankArray(runtime, len); int index = 0; array.store(index++, larg); for (int i = 0, j = args.length; i < j; i++) { array.store(index++, zipEnumNext(ctx, args[i])); } synchronized (zip) { zip.append(array); } return ctx.nil; } });
@Override public ByteList gets() { int length = completeSource.length(); if (offset >= length) return null; // At end of source/eof int end = completeSource.indexOf('\n', offset) + 1; if (end == 0) end = length; ByteList line = completeSource.makeShared(offset, end - offset); offset = end; if (scriptLines != null) scriptLines.append(RubyString.newString(scriptLines.getRuntime(), line)); return line; }
@Override public ByteList gets() { IRubyObject result = io.callMethod(io.getRuntime().getCurrentContext(), "gets"); if (result.isNil()) return null; ByteList bytelist = result.convertToString().getByteList(); offset += bytelist.getRealSize(); bytelist.setEncoding(encoding); if (scriptLines != null) scriptLines.append(RubyString.newString(scriptLines.getRuntime(), bytelist)); return bytelist; }