PeoplePlacesThings is a collection of ruby classes for parsing and formatting U.S person names, street addresses, phone numbers, and more.
gem install -s http://gemcutter.org people_places_things
Rdocs available at http://rdoc.info/projects/dburkes/people_places_things
require 'people_places_things'
include PeoplePlacesThings
name = PersonName.new("george quincy harold peabody jr.")
name.first => "george"
name.first_i => "g"
name.last => "peabody"
name.middle => "quincy harold"
name.suffix => "jr."
name.to_s(:last_comma_first) => "peabody,george"
name.to_s(:full) => "george quincy peabody jr."
name2 = PersonName.new("peabody jr., george quincy harold", :last_first_middle)
name.eql?(name2) => true
addr = StreetAddress.new("204-b ne. 1st ave suite 4")
addr.number => "204-b"
addr.pre_direction => :northeast
addr.name => "first"
addr.suffix => :avenue
addr.unit_type => :suite
addr.unit => "4"
addr.to_s => "204-b northeast 1st avenue suite 4"
ANSICounties.code_for('GA', 'FULTON') => 13121
ANSICounties.code_for(:state => 'ga', :county => 'fulton') => 13121
ANSICounties.data_for(13121) => { :state => 'GA', :county => 'FULTON' }
phone = PhoneNumber.new '14045551212'
phone.country_code => 1
phone.area_code => '404'
phone.number => '5551212'
phone.exchange => '555'
phone.suffix => '1212'
phone.to_s => '1 (404) 555-1212'
zip = ZipCode.new '30306-3522'
zip.base => '30306'
zip.plus_four => '3522'
zip.to_s => '30306-3522'
state = State.new 'california'
state.sym => :ca
state.to_s => 'California'
state.to_s(:abbr) => 'CA'
location = Location.new 'san francisco, ca 94114-1222'
location.city => 'san francisco'
location.state.to_s => 'California'
location.zip.base => '94114'
The data that makes up lib/people_places_things/data/data.yml
was generated from lib/people_places_things/data/raw.txt
, which was downloaded from the US Census website.
UnsupportedFormat error Rewrite 1st => first <code> addr = StreetAddress.new("204-b ne. 1st ave suite 4") addr.number => "204-b" addr.pre_direction => :northeast addr.name => "first" addr.suffix => :avenue addr.unit_type => :suite addr.unit => "4" addr.to_s => "204-b northeast 1st avenue suite 4"