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