* 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
This commit is contained in:
jeg2 2014-04-01 14:40:48 +00:00
Родитель 7c4d4e1eb2
Коммит 1170b057e0
3 изменённых файлов: 12 добавлений и 5 удалений

Просмотреть файл

@ -1,3 +1,9 @@
Tue Apr 1 11:39:57 2014 James Edward Gray II <james@graysoftinc.com>
* 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 <james@graysoftinc.com>
* lib/csv.rb: Don't attempt to convert nil headers.

Просмотреть файл

@ -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
}
}

Просмотреть файл

@ -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