From 61ecd9f74cd4da6198e7bf0321109b24b95b943f Mon Sep 17 00:00:00 2001 From: CountCulture Date: Thu, 25 Jun 2009 11:14:02 +0100 Subject: [PATCH] Tweak to NameParser --- lib/name_parser.rb | 2 +- test/unit/name_parser_test.rb | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/name_parser.rb b/lib/name_parser.rb index 191c8b5..0a52ed1 100644 --- a/lib/name_parser.rb +++ b/lib/name_parser.rb @@ -7,7 +7,7 @@ module NameParser def parse(fn) titles, qualifications, result_hash = [], [], {} - names = fn.sub(/Councillor|Cllr/, '').gsub(/([.,])/, '').gsub(/\(\w+\)/, '').gsub(/[A-Z]{3,}/, '').split(" ") + names = fn.sub(/Councillor|Cllr/, '').gsub(/([.,])/, '').gsub(/\([\w ]+\)/, '').gsub(/[A-Z]{3,}/, '').split(" ") names.delete_if{ |n| Titles.include?(n) ? titles << n : (Qualifications.include?(n) ? qualifications << n : false)} result_hash[:first_name] = names[0..-2].join(" ") result_hash[:last_name] = names.last diff --git a/test/unit/name_parser_test.rb b/test/unit/name_parser_test.rb index 3c4e92a..6b64b2c 100644 --- a/test/unit/name_parser_test.rb +++ b/test/unit/name_parser_test.rb @@ -21,7 +21,8 @@ class NameParserTest < Test::Unit::TestCase "Professor Fred H. Flintstone" => {:name_title => "Professor", :first_name => "Fred H", :last_name => "Flintstone"}, "Fred Flintstone BSc" => {:first_name => "Fred", :last_name => "Flintstone", :qualifications => "BSc"}, "Fred Flintstone BSc, PhD" => {:first_name => "Fred", :last_name => "Flintstone", :qualifications => "BSc PhD"}, - "Fred Flintstone BSc, MRTPI(Rtd)" => {:first_name => "Fred", :last_name => "Flintstone", :qualifications => "BSc"} + "Fred Flintstone BSc, MRTPI(Rtd)" => {:first_name => "Fred", :last_name => "Flintstone", :qualifications => "BSc"}, + "Jane Annabel Wilson (nee Allen)" => {:first_name => "Jane Annabel", :last_name => "Wilson"} }