mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #6171 from buty4649/add-enumrable-lazy-grep_v
Add Enumerable::Lazy#grep_v to mruby-enum-lazy
This commit is contained in:
@@ -10,6 +10,7 @@ module Enumerable
|
||||
# - select find_all
|
||||
# - reject
|
||||
# - grep
|
||||
# - grep_v
|
||||
# - drop
|
||||
# - drop_while
|
||||
# - take_while
|
||||
@@ -89,6 +90,14 @@ class Enumerator
|
||||
}
|
||||
end
|
||||
|
||||
def grep_v(pattern)
|
||||
Lazy.new(self){|yielder, val|
|
||||
unless pattern === val
|
||||
yielder << val
|
||||
end
|
||||
}
|
||||
end
|
||||
|
||||
def drop(n)
|
||||
dropped = 0
|
||||
Lazy.new(self){|yielder, val|
|
||||
|
||||
@@ -46,6 +46,12 @@ assert("Enumerator::Lazy#to_enum") do
|
||||
assert_equal [0*1, 2*3, 4*5, 6*7], lazy_enum.map { |a| a.first * a.last }.first(4)
|
||||
end
|
||||
|
||||
assert("Enumerator::Lazy#grep_v") do
|
||||
lazy_grep_v = (0..).lazy.grep_v(2..4)
|
||||
assert_kind_of Enumerator::Lazy, lazy_grep_v
|
||||
assert_equal [0, 1, 5, 6], lazy_grep_v.first(4)
|
||||
end
|
||||
|
||||
assert("Enumerator::Lazy#zip with cycle") do
|
||||
e1 = [1, 2, 3].cycle
|
||||
e2 = [:a, :b].cycle
|
||||
|
||||
Reference in New Issue
Block a user