Parses one line street addresses and returns a normalized address object.
This is a near direct port of the of the perl module Geo::StreetAddress::US originally written by Schuyler D. Erle.
For more information see search.cpan.org/~sderle/Geo-StreetAddress-US-0.99/
Parse United States addresses.
require 'street_address' address = StreetAddress::US.parse("1600 Pennsylvania Ave, Washington, DC, 20500") address.street # Pennsylvania address.number # 1600 address.postal_code # 20500 address.city # Washington address.state # DC address.state_name # District of columbia address.street_type # Ave address.intersection? # false address.to_s # "1600 Pennsylvania Ave, Washington, DC 20500" address.to_s(:line1) # 1600 Pennsylvania Ave StreetAddress::US.parse("1600 Pennsylvania Ave") # nil not a full address
address = StreetAddress::US.parse("1600 Pennsylvania Avenue", :informal => true) address.number # 1600 address.street # Pennsylvania address.street_type # Ave address.to_s # 1600 Pennsylvania Ave
address = StreetAddress::US.parse("5904 Richmond Hwy Ste 340 Alexandria VA 22303-1864") address.postal_code_ext # 1846 address = StreetAddress::US.parse("5904 Richmond Hwy Ste 340 Alexandria VA 223031864") address.postal_code_ext # 1846
To use from your Gemfile:
gem 'StreetAddress', '1.0.3', :require => "street_address"