mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #6148 from buty4649/add-enumerable-grep_v
Add Enumerable#grep_v to mruby-enum-ext
This commit is contained in:
@@ -840,6 +840,17 @@ module Enumerable
|
||||
|
||||
alias filter select
|
||||
|
||||
def grep_v(pattern, &block)
|
||||
ary = []
|
||||
self.each{|*val|
|
||||
sv = val.__svalue
|
||||
unless pattern === sv
|
||||
ary.push((block)? block.call(*val): sv)
|
||||
end
|
||||
}
|
||||
ary
|
||||
end
|
||||
|
||||
##
|
||||
# call-seq:
|
||||
# enum.tally -> a_hash
|
||||
|
||||
@@ -195,3 +195,10 @@ end
|
||||
assert("Enumerable#tally") do
|
||||
assert_equal({"a"=>1, "b"=>2, "c"=>1}, ["a", "b", "c", "b"].tally)
|
||||
end
|
||||
|
||||
assert("Enumerable#grep_v") do
|
||||
a = [1, 2, 3, 4, 5, 0]
|
||||
assert_equal [1, 5, 0], a.grep_v(2..4)
|
||||
assert_equal [1, 2, 3, 4, 5, 0], a.grep_v(6..8)
|
||||
assert_equal [2, 4, 6, 8, 10], a.grep_v(0) {|v| v * 2}
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user