class Geocoder::Lookup::GeocoderUs

def base_query_url(query)

def base_query_url(query)
  base_query_url_with_optional_key(configuration.api_key)
end

def base_query_url_with_optional_key(key = nil)

def base_query_url_with_optional_key(key = nil)
  base = "#{protocol}://"
  if configuration.api_key
    base << "#{configuration.api_key}@"
  end
  base + "geocoder.us/member/service/csv/geocode?"
end

def cache_key(query)

def cache_key(query)
  base_query_url_with_optional_key(nil) + url_query_string(query)
end

def name

def name
  "Geocoder.us"
end

def parse_raw_data(raw_data)

def parse_raw_data(raw_data)
  raw_data.chomp.split(',')
end

def query_url_params(query)

def query_url_params(query)
  (query.text =~ /^\d{5}(?:-\d{4})?$/ ? {:zip => query} : {:address => query.sanitized_text}).merge(super)
end

def results(query)

def results(query)
  return [] unless doc = fetch_data(query)
  if doc[0].to_s =~ /^(\d+)\:/
    return []
  else
    return [doc.size == 5 ? ((doc[0..1] << nil) + doc[2..4]) : doc]
  end
end

def supported_protocols

def supported_protocols
  [:http]
end