Skip to content

Commit

Permalink
Showing 3 changed files with 17 additions and 6 deletions.
15 changes: 15 additions & 0 deletions core/src/main/ruby/jruby/kernel/enumerator.rb
Original file line number Diff line number Diff line change
@@ -106,6 +106,21 @@ def grep(pattern)
end.__set_inspect :grep, [pattern]
end

def grep_v(pattern)
if block_given?
# Split for performance
Lazy.new(self) do |yielder, *values|
values = values.first unless values.size > 1
yielder.yield(yield(values)) unless pattern === values
end
else
Lazy.new(self) do |yielder, *values|
values = values.first unless values.size > 1
yielder.yield(values) unless pattern === values
end
end.__set_inspect :grep_v, [pattern]
end

def drop(n)
n = JRuby::Type.coerce_to_int(n)
Lazy.new(self) do |yielder, *values|
2 changes: 1 addition & 1 deletion test/mri.index
Original file line number Diff line number Diff line change
@@ -47,6 +47,7 @@ ruby/test_io.rb
ruby/test_io_m17n.rb
ruby/test_iterator.rb
ruby/test_lambda.rb
ruby/test_lazy_enumerator.rb
ruby/test_literal.rb
ruby/test_m17n.rb
ruby/test_m17n_comb.rb
@@ -727,7 +728,6 @@ ruby/enc/test_windows_1251.rb
# ruby/test_backtrace.rb
# ruby/test_iseq.rb
# ruby/test_keyword.rb
# ruby/test_lazy_enumerator.rb
# ruby/test_not.rb
# ruby/test_refinement.rb
# ruby/test_rubyvm.rb
6 changes: 1 addition & 5 deletions test/mri/excludes/TestLazyEnumerator.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
exclude :test_grep_multiple_values, "needs investigation"
exclude :test_inspect, "needs investigation"
exclude :test_map_zip, "needs investigation"
exclude :test_reject_multiple_values, "needs investigation"
exclude :test_select_multiple_values, "needs investigation"
exclude :test_laziness_conservation, "needs investigation"
exclude :test_size, "needs investigation"
exclude :test_zip_without_arg, "needs investigation"

0 comments on commit 3f92c0d

Please sign in to comment.