diff options
author | jeg2 <jeg2@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-04-01 14:40:48 +0000 |
---|---|---|
committer | jeg2 <jeg2@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-04-01 14:40:48 +0000 |
commit | 1170b057e02cefd34b4ff88ee01369c91b16ae2d (patch) | |
tree | a5bb2431924b0cb12dbbc06c974a451b01fc9c70 | |
parent | 7c4d4e1eb2897cec295ea9316835fc3cfef96d6d (diff) |
* lib/csv.rb: Symbol HeaderConverter: strip leading/trailing space.
Reported by Skye Shaw
[Fixes GH-575]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45498 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | lib/csv.rb | 4 | ||||
-rwxr-xr-x | test/csv/test_headers.rb | 7 |
3 files changed, 12 insertions, 5 deletions
@@ -1,3 +1,9 @@ +Tue Apr 1 11:39:57 2014 James Edward Gray II <[email protected]> + + * lib/csv.rb: Symbol HeaderConverter: strip leading/trailing space. + Reported by Skye Shaw + [Fixes GH-575] + Tue Apr 1 11:34:04 2014 James Edward Gray II <[email protected]> * lib/csv.rb: Don't attempt to convert nil headers. diff --git a/lib/csv.rb b/lib/csv.rb index 16a38a17cf..b8697fe1da 100644 --- a/lib/csv.rb +++ b/lib/csv.rb @@ -992,8 +992,8 @@ class CSV HeaderConverters = { downcase: lambda { |h| h.encode(ConverterEncoding).downcase }, symbol: lambda { |h| - h.encode(ConverterEncoding).downcase.gsub(/\s+/, "_"). - gsub(/\W+/, "").to_sym + h.encode(ConverterEncoding).downcase.strip.gsub(/\s+/, "_"). + gsub(/\W+/, "").to_sym } } diff --git a/test/csv/test_headers.rb b/test/csv/test_headers.rb index 94d5e9f03e..79ccd20c74 100755 --- a/test/csv/test_headers.rb +++ b/test/csv/test_headers.rb @@ -217,9 +217,10 @@ class TestCSV::Headers < TestCSV end def test_builtin_symbol_converter - csv = CSV.parse( "One,TWO Three", headers: true, - return_headers: true, - header_converters: :symbol ) + # Note that the trailing space is intentional + csv = CSV.parse( "One,TWO Three ", headers: true, + return_headers: true, + header_converters: :symbol ) assert_equal([:one, :two_three], csv.headers) end |