private IRubyObject cycleCommon(ThreadContext context, long n, Block block) { while (realLength > 0 && (n < 0 || 0 < n--)) { for (int i = 0; i < realLength; i++) { block.yield(context, eltOk(i)); } } return context.nil; }
private RubyIO saveReadIO(int i, ThreadContext context) { IRubyObject obj = readArray.eltOk(i); RubyIO ioObj = RubyIO.convertToIO(context, obj); readIOs[i] = ioObj; return ioObj; }
private RubyIO saveReadIO(int i, ThreadContext context) { IRubyObject obj = readArray.eltOk(i); RubyIO ioObj = RubyIO.convertToIO(context, obj); readIOs[i] = ioObj; return ioObj; }
private RubyIO saveWriteIO(int i, ThreadContext context) { IRubyObject obj = writeArray.eltOk(i); RubyIO ioObj = RubyIO.convertToIO(context, obj); writeIOs[i] = ioObj.GetWriteIO(); return ioObj; }
/** rb_ary_elt * */ private final IRubyObject elt(long offset) { if (offset < 0 || offset >= realLength) { return getRuntime().getNil(); } return eltOk(offset); }
private IRubyObject cycleCommon(ThreadContext context, long n, Block block) { while (realLength > 0 && (n < 0 || 0 < n--)) { for (int i = 0; i < realLength; i++) { block.yield(context, eltOk(i)); } } return context.runtime.getNil(); }
public IRubyObject find_index(ThreadContext context, IRubyObject cond) { if (!isBuiltin("each")) return RubyEnumerable.find_indexCommon(context, this, cond); for (int i = 0; i < realLength; i++) { if (eltOk(i).equals(cond)) return context.runtime.newFixnum(i); } return context.nil; }
public IRubyObject find_index(ThreadContext context, IRubyObject cond) { if (!isBuiltin("each")) return RubyEnumerable.find_indexCommon(context, this, cond); for (int i = 0; i < realLength; i++) { if (eltOk(i).equals(cond)) return context.runtime.newFixnum(i); } return context.nil; }
/** rb_ary_last * */ @JRubyMethod(name = "last") public IRubyObject last() { if (realLength == 0) return getRuntime().getNil(); return eltOk(realLength - 1); }
/** rb_ary_last * */ @JRubyMethod(name = "last") public IRubyObject last() { if (realLength == 0) return getRuntime().getNil(); return eltOk(realLength - 1); }
/** rb_ary_index * */ public IRubyObject index(ThreadContext context, IRubyObject obj) { Ruby runtime = context.runtime; for (int i = 0; i < realLength; i++) { if (equalInternal(context, eltOk(i), obj)) return runtime.newFixnum(i); } return runtime.getNil(); }
private IRubyObject any_pBlockless(ThreadContext context) { for (int i = 0; i < realLength; i++) { if (eltOk(i).isTrue()) return context.runtime.getTrue(); } return context.runtime.getFalse(); }
/** rb_ary_nitems * */ @JRubyMethod(name = "nitems") public IRubyObject nitems() { int n = 0; for (int i = 0; i < realLength; i++) { if (!eltOk(i).isNil()) n++; } return getRuntime().newFixnum(n); }
public IRubyObject detectCommon(ThreadContext context, IRubyObject ifnone, Block block) { for (int i = 0; i < realLength; i++) { IRubyObject value = eltOk(i); if (block.yield(context, value).isTrue()) return value; } return ifnone != null ? ifnone.callMethod(context, "call") : context.runtime.getNil(); }
private long hashImpl(final ThreadContext context) { long h = Helpers.hashStart(context.runtime, realLength); h = Helpers.murmurCombine(h, System.identityHashCode(RubyArray.class)); for (int i = 0; i < realLength; i++) { IRubyObject value = eltOk(i); RubyFixnum n = Helpers.safeHash(context, value); h = murmurCombine(h, n.getLongValue()); } return hashEnd(h); }
private static RubyArray mapToPathnames(ThreadContext context, RubyClass clazz, IRubyObject ary) { RubyArray paths = ary.convertToArray(); for (int i = 0; i < paths.size(); i++) { RubyString path = paths.eltOk(i).convertToString(); paths.store(i, newInstance(context, clazz, path)); } return paths; }
public IRubyObject find_index(ThreadContext context, Block block) { if (!isBuiltin("each")) return RubyEnumerable.find_indexCommon(context, this, block, Signature.OPTIONAL); for (int i = 0; i < realLength; i++) { if (block.yield(context, eltOk(i)).isTrue()) return context.runtime.newFixnum(i); } return context.nil; }
public IRubyObject all_p(ThreadContext context, IRubyObject[] args, Block block) { if (!isBuiltin("each")) return RubyEnumerable.all_pCommon(context, this, args, block); boolean patternGiven = args.length > 0; if (!block.isGiven() || patternGiven) return all_pBlockless(context, args); for (int i = 0; i < realLength; i++) { if (!block.yield(context, eltOk(i)).isTrue()) return context.fals; } return context.tru; }
public IRubyObject find_index(ThreadContext context, Block block) { if (!isBuiltin("each")) return RubyEnumerable.find_indexCommon(context, this, block, Arity.OPTIONAL); for (int i = 0; i < realLength; i++) { if (block.yield(context, eltOk(i)).isTrue()) return context.runtime.newFixnum(i); } return context.runtime.getNil(); }
@JRubyMethod(name = {"index", "find_index"}) public IRubyObject index(ThreadContext context, Block block) { Ruby runtime = context.runtime; if (!block.isGiven()) return enumeratorize(runtime, this, "index"); for (int i = 0; i < realLength; i++) { if (block.yield(context, eltOk(i)).isTrue()) return runtime.newFixnum(i); } return runtime.getNil(); }