Skip to content
Snippets Groups Projects
Commit fc818cc9 authored by Alex Reisner's avatar Alex Reisner
Browse files

Add attributes to Geocoder::Result objects.

city, country, country_code, postal_code
parent e0e3c539
No related branches found
No related tags found
No related merge requests found
......@@ -31,6 +31,14 @@ module Geocoder
def longitude
coordinates[1]
end
def country
fail
end
def country_code
fail
end
end
end
end
......@@ -4,7 +4,23 @@ module Geocoder::Result
class Freegeoip < Base
def address(format = :full)
"#{city}#{', ' + region_code unless region_code == ''} #{zipcode}, #{country_name}"
"#{city}#{', ' + region_code unless region_code == ''} #{postal_code}, #{country}"
end
def city
@data['city']
end
def country
@data['country_name']
end
def country_code
@data['country_code']
end
def postal_code
@data['zipcode']
end
def self.response_attributes
......
......@@ -11,6 +11,22 @@ module Geocoder::Result
formatted_address
end
def city
address_components_of_type(:locality).first['long_name']
end
def country
address_components_of_type(:country).first['long_name']
end
def country_code
address_components_of_type(:country).first['short_name']
end
def postal_code
address_components_of_type(:postal_code).first['long_name']
end
def types
@data['types']
end
......
......@@ -7,6 +7,22 @@ module Geocoder::Result
(1..4).to_a.map{ |i| @data["line#{i}"] }.reject{ |i| i.nil? or i == "" }.join(", ")
end
def city
@data['city']
end
def country
@data['country']
end
def country_code
@data['countrycode']
end
def postal_code
@data['postal']
end
def self.response_attributes
%w[quality offsetlat offsetlon radius boundingbox name
line1 line2 line3 line4 cross house street xstreet unittype unit postal
......
......@@ -134,6 +134,10 @@ class GeocoderTest < Test::Unit::TestCase
assert result.coordinates.is_a?(Array)
assert result.latitude.is_a?(Float)
assert result.longitude.is_a?(Float)
assert result.city.is_a?(String)
assert result.postal_code.is_a?(String)
assert result.country.is_a?(String)
assert result.country_code.is_a?(String)
assert_not_nil result.address
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment