module JDX::Geocoder

Constants

STATE_ABB
STATE_ABB_REGEXP
VERSION

Attributes

configuration[RW]

Public Class Methods

configure() { |configuration| ... } click to toggle source
# File lib/jdx/geocoder.rb, line 76
def configure
  self.configuration ||= Configuration.new
  yield(configuration)
end
countrywide?(down) click to toggle source
# File lib/jdx/geocoder.rb, line 107
def countrywide?(down)
  down.match?(/\b(nation?.|country?.)wide\b/)
end
extract_zipcode(down) click to toggle source
# File lib/jdx/geocoder.rb, line 111
def extract_zipcode(down)
  down.match(/\b[0-9]{5}(?:-[0-9]{4})?\b/)&.[](0)
end
remove_duplicates(down) click to toggle source
# File lib/jdx/geocoder.rb, line 120
def remove_duplicates(down)
  down.split(/\W+/).tap(&:uniq!).join(' ').tap(&:strip!)
end
remove_stuff(down) click to toggle source
# File lib/jdx/geocoder.rb, line 115
def remove_stuff(down)
  down.gsub!(%r{\b(?:united\W*st?ates(?:\W*of\W*america)?|u\W*s\W*a?|n/a)\b}, '')
  down.gsub!(STATE_ABB_REGEXP, STATE_ABB)
end
sanitize(term) click to toggle source
# File lib/jdx/geocoder.rb, line 96
def sanitize(term)
  down = term.downcase
  return 'us' if countrywide?(down)

  zip = extract_zipcode(down)
  return zip unless zip.nil?

  remove_stuff(down)
  remove_duplicates(down)
end
valid_ip?(ip) click to toggle source
# File lib/jdx/geocoder.rb, line 124
def valid_ip?(ip)
  case ip
  when Resolv::IPv4::Regex, Resolv::IPv6::Regex
    true
  else
    false
  end
end