module StreetAddressExt

Public Instance Methods

capitalize(method, address) click to toggle source
# File lib/street_address_ext.rb, line 70
def capitalize method, address
  s = address.send(method)
  return unless s
  address.send(method+'=', s.split(/\s+/).map { |item|
    item.capitalize
  }.join(' '))
end
normalize(address) click to toggle source
# File lib/street_address_ext.rb, line 58
def normalize address
  return nil unless address
  address = address.dup
  capitalize 'street', address
  capitalize 'city', address
  remove_period 'prefix', address
  address.state = nil
  address.postal_code = nil
  address.postal_code_ext = nil
  address
end
parse(text) click to toggle source
# File lib/street_address_ext.rb, line 44
def parse text
  text = strip_country text.strip
  address = StreetAddress::US.parse(text)
  unless address
    address = StreetAddress::US.parse("#{text},UT")
    address.state = nil if address
  end
  normalize address if address
end
remove_period(method, address) click to toggle source
# File lib/street_address_ext.rb, line 78
def remove_period method, address
  item = address.send method
  if item
    address.send "#{method}=", item.gsub('.','')
  end
end
strip_country(text) click to toggle source
# File lib/street_address_ext.rb, line 54
def strip_country text
  return text.sub(/(?:(?:United States)|USA)$/, '')
end