diff --git a/core/src/main/java/org/jruby/RubyEnumerator.java b/core/src/main/java/org/jruby/RubyEnumerator.java index 0cd16749950..6ab7160a87c 100644 --- a/core/src/main/java/org/jruby/RubyEnumerator.java +++ b/core/src/main/java/org/jruby/RubyEnumerator.java @@ -474,7 +474,21 @@ public synchronized IRubyObject peek(ThreadContext context) { return nexter.peek(); } - + + @JRubyMethod(name = "peek_values") + public synchronized IRubyObject peekValues(ThreadContext context) { + ensureNexter(context); + + return RubyArray.newArray(context.runtime, nexter.peek()); + } + + @JRubyMethod(name = "next_values") + public synchronized IRubyObject nextValues(ThreadContext context) { + ensureNexter(context); + + return RubyArray.newArray(context.runtime, nexter.next()); + } + private void ensureNexter(ThreadContext context) { if (nexter == null) { if (Options.ENUMERATOR_LIGHTWEIGHT.load()) {