Skip to content

Commit

Permalink
Add Array#reject_values. (smackesey)
Browse files Browse the repository at this point in the history
  • Loading branch information
trans committed Jan 31, 2014
1 parent 448c111 commit 30574f7
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 0 deletions.
1 change: 1 addition & 0 deletions lib/core/facets/array.rb
Expand Up @@ -32,6 +32,7 @@
#require_relative 'array/op_pow.rb' # uncommon
require_relative 'array/recurse.rb'
require_relative 'array/recursively.rb'
require_relative 'array/reject_values.rb'
require_relative 'array/splice.rb'
require_relative 'array/split.rb'
require_relative 'array/store.rb'
Expand Down
21 changes: 21 additions & 0 deletions lib/core/facets/array/reject_values.rb
@@ -0,0 +1,21 @@
class Array

# Non-destructive form of `Array#delete_values`. Unlike `delete_values`
# this method returns a new array.
#
# values - List of array elements to reject.
#
# Examples
#
# [1,2,3,4,5].reject_values(2,4) # => [1,3,5]
#
# Returns [Array]
#
# CREDIT: Sean Mackesey

def reject_values(*values)
reject { |x| values.include?(x) }
end

end

17 changes: 17 additions & 0 deletions test/core/array/test_reject_values.rb
@@ -0,0 +1,17 @@
covers 'facets/array/reject_values'

testcase Array do

method :reject_values do

test do
a = [1,2,3,4,5]
r = a.reject_values(2,4)
r.assert == [1,3,5]
a.assert = [1,2,3,4,5] # hasn't changed
end

end

end

0 comments on commit 30574f7

Please sign in to comment.