From 5768a4a7e051963db769b5aafe8aadc6bc97f867 Mon Sep 17 00:00:00 2001 From: marcandre Date: Mon, 26 Nov 2012 20:14:49 +0000 Subject: * array.c: Fix rdoc for Array#delete [#7437] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- array.c | 6 +++--- test/ruby/test_array.rb | 8 ++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/array.c b/array.c index d90f08b7d1..2454b99d76 100644 --- a/array.c +++ b/array.c @@ -2735,12 +2735,12 @@ ary_resize_smaller(VALUE ary, long len) /* * call-seq: - * ary.delete(obj) -> obj or nil - * ary.delete(obj) { block } -> obj or nil + * ary.delete(obj) -> item or nil + * ary.delete(obj) { block } -> item or result of block * * Deletes all items from +self+ that are equal to +obj+. * - * If any items are found, returns +obj+, otherwise +nil+ is returned instead. + * Returns the last deleted item, or +nil+ if no matching item is found. * * If the optional code block is given, the result of the block is returned if * the item is not found. (To remove +nil+ elements and get an informative diff --git a/test/ruby/test_array.rb b/test/ruby/test_array.rb index 6c447c2626..6c7f920d79 100644 --- a/test/ruby/test_array.rb +++ b/test/ruby/test_array.rb @@ -598,6 +598,14 @@ class TestArray < Test::Unit::TestCase a = @cls[*('cab'..'cat').to_a] assert_equal(99, a.delete('cup') { 99 } ) assert_equal(@cls[*('cab'..'cat').to_a], a) + + o = Object.new + def o.==(other); true; end + o2 = Object.new + def o2.==(other); true; end + a = @cls[1, o, o2, 2] + assert_equal(o2, a.delete(42)) + assert_equal([1, 2], a) end def test_delete_at -- cgit v1.2.3