class Geocoder::Result::Mapbox

def address

def address
  [place_name, street, city, state, postal_code, country].compact.join(', ')
end

def city

def city
  context_part('place')
end

def context

def context
  Array(data['context'])
end

def context_part(name)

def context_part(name)
  context.map { |c| c['text'] if c['id'] =~ Regexp.new(name) }.compact.first
end

def coordinates

def coordinates
  data['geometry']['coordinates'].reverse.map(&:to_f)
end

def country

def country
  context_part('country')
end

def neighborhood

def neighborhood
  context_part('neighborhood')
end

def place_name

def place_name
  data['text']
end

def postal_code

def postal_code
  context_part('postcode')
end

def state

def state
  context_part('region')
end

def street

def street
  data['properties']['address']
end