From f3ba845deb749e9915bbba7e4b0d2de4ab424490 Mon Sep 17 00:00:00 2001
From: jeg2 <jeg2@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
Date: Tue, 23 Sep 2008 14:40:24 +0000
Subject: [PATCH] * lib/csv/csv.rb:  Improved the idea of whitespace and word
 characters used   in substitutions during header conversion as suggested by
 Michael Selig.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
---
 ChangeLog  | 5 +++++
 lib/csv.rb | 6 +++---
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index b17e23f2e0..8c9eca458f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Tue Sep 23 23:39:25 2008  James Edward Gray II  <jeg2@ruby-lang.org>
+
+	* lib/csv/csv.rb:  Improved the idea of whitespace and word characters used
+	  in substitutions during header conversion as suggested by Michael Selig.
+
 Tue Sep 23 21:50:53 2008  Tanaka Akira  <akr@fsij.org>
 
 	* io.c (io_binwrite): allocate wbuf if nosync.
diff --git a/lib/csv.rb b/lib/csv.rb
index dccee6cbe8..ccfa6ab42f 100644
--- a/lib/csv.rb
+++ b/lib/csv.rb
@@ -199,7 +199,7 @@ require "stringio"
 # 
 class CSV
   # The version of the installed library.
-  VERSION = "2.4.0".freeze
+  VERSION = "2.4.1".freeze
   
   # 
   # A CSV::Row is part Array and part Hash.  It retains an order for the fields
@@ -933,8 +933,8 @@ class CSV
   HeaderConverters = {
     :downcase => lambda { |h| h.encode(ConverterEncoding).downcase },
     :symbol   => lambda { |h|
-      h.encode(ConverterEncoding).
-        downcase.tr(" ", "_").delete("^a-z0-9_").to_sym
+      h.encode(ConverterEncoding).downcase.gsub(/\s+/, "_").
+                                           gsub(/\W+/, "").to_sym
     }
   }