1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* A bug fix for deleting blank Table rows from Andy Hartford.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26516 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
jeg2 2010-01-31 05:34:17 +00:00
parent bcbfa7a97b
commit ae0b606830
3 changed files with 16 additions and 4 deletions

View file

@ -1,3 +1,7 @@
Sun Jan 31 14:33:00 2010 James Edward Gray II <jeg2@ruby-lang.org>
* A bug fix for deleting blank Table rows from Andy Hartford.
Sun Jan 31 13:31:43 2010 wanabe <s.wanabe@gmail.com>
* gc.c (obj_free): free rb_classext_t of eigenclass. [Bug #1392]

View file

@ -198,7 +198,7 @@ require "stringio"
#
class CSV
# The version of the installed library.
VERSION = "2.4.5".freeze
VERSION = "2.4.6".freeze
#
# A CSV::Row is part Array and part Hash. It retains an order for the fields
@ -364,10 +364,12 @@ class CSV
# or +nil+ if a pair could not be found.
#
def delete(header_or_index, minimum_index = 0)
if header_or_index.is_a? Integer # by index
if header_or_index.is_a? Integer # by index
@row.delete_at(header_or_index)
else # by header
@row.delete_at(index(header_or_index, minimum_index))
elsif i = index(header_or_index, minimum_index) # by header
@row.delete_at(i)
else
[ ]
end
end

View file

@ -321,6 +321,12 @@ class TestCSVTable < Test::Unit::TestCase
END_RESULT
end
def test_delete_with_blank_rows
data = "col1,col2\nra1,ra2\n\nrb1,rb2"
table = CSV.parse(data, :headers => true)
assert_equal(["ra2", nil, "rb2"], table.delete("col2"))
end
def test_delete_if
######################
### Mixed/Row Mode ###