class Geocoder::Lookup::Yahoo

def base_url

def base_url
  "#{protocol}://yboss.yahooapis.com/geo/placefinder?"
end

def cache_key(query)

def cache_key(query)
  raw_url(query)
end

def map_link_url(coordinates)

def map_link_url(coordinates)
  "http://maps.yahoo.com/#lat=#{coordinates[0]}&lon=#{coordinates[1]}"
end

def query_url(query)

def query_url(query)
  parsed_url = URI.parse(raw_url(query))
  o = OauthUtil.new
  o.consumer_key = Geocoder::Configuration.api_key[0]
  o.consumer_secret = Geocoder::Configuration.api_key[1]
  base_url + o.sign(parsed_url).query_string
end

def query_url_params(query)

def query_url_params(query)
  super.merge(
    :location => query.sanitized_text,
    :flags => "JXTSR",
    :gflags => "AC#{'R' if query.reverse_geocode?}"
  )
end

def raw_url(query)

def raw_url(query)
  base_url + url_query_string(query)
end

def results(query)

def results(query)
  return [] unless doc = fetch_data(query)
  doc = doc['bossresponse']
  if doc['responsecode'].to_i == 200
    if doc['placefinder']['count'].to_i > 0
      return doc['placefinder']['results']
    else
      return []
    end
  else
    warn "Yahoo Geocoding API error: #{doc['responsecode']} (#{doc['reason']})."
    return []
  end
end