Parses a string returning a normalized Address object. When the string is not an US address it returns nil.
This is a port of the perl module Geo::StreetAddress originally written by Schuyler D. Erle. This version was forked from https://github.com/street-address-rb/street-address
StreetAddress version 2+ is designed to work with ruby 2+. It may work with ruby 1.9.3, but will not work with ruby 1.8.x. If you need this to work pre ruby 2.0 please use gem version 1.0.6 or below. Versions 3 is currently tested against ruby 2.4.1
gem install StreetAddress
then in your code
require 'street_address'
or from Gemfile
gem 'StreetAddress', :require => "street_address"
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
address = StreetAddress::US.parse("1600 Pennsylvania Ave")
address.street # Pennsylvania
address.number # 1600
address.state # nil
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
address = StreetAddress::US.parse_address("1600 Pennsylvania Avenue")
# nil - not enough information to be a full address
address = StreetAddress::US.parse_address("1600 Pennsylvania Ave, Washington, DC, 20500")
# same results as above
The MIT Licencse
Copyright (c) 2007,2008,2009,2010,2011,2012,2013,2014,2015 Derrek Long and Contributors Copyright (c) 2018 ABODO and Contributors