Module: ZipCodeServices
- Defined in:
- lib/zipcodeservices.rb,
lib/zipcodeservices/version.rb
Constant Summary collapse
- VERSION =
'0.0.1'
Class Attribute Summary collapse
-
.apikey ⇒ Object
attr_accessor :base_uri.
Class Method Summary collapse
- .cities(province_id) ⇒ Object
- .cities_by_state_and_country(province_id, country_id) ⇒ Object
- .countries ⇒ Object
- .distance_between_zipcodes(zip1, zip2) ⇒ Object
- .radius(zip, rad) ⇒ Object
- .radius_by_latlong(lat, long, rad) ⇒ Object
- .states(country_id) ⇒ Object (also: provinces)
- .zipcode(zip) ⇒ Object
Class Attribute Details
.apikey ⇒ Object
attr_accessor :base_uri
12 13 14 |
# File 'lib/zipcodeservices.rb', line 12 def apikey @apikey end |
Class Method Details
.cities(province_id) ⇒ Object
99 100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/zipcodeservices.rb', line 99 def cities(province_id) #/{apikey}/{zipcode} response = Typhoeus::Request.get( "#{@base_uri}/cities.svc/#{apikey}/#{province_id}") if response.code == 200 j = JSON::parse(response.body) raise "BAD API KEY" if j["GetCitiesByProvinceResult"] == nil j elsif response.code == 404 nil else raise response.body end end |
.cities_by_state_and_country(province_id, country_id) ⇒ Object
113 114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/zipcodeservices.rb', line 113 def cities_by_state_and_country(province_id, country_id) #/{apikey}/{zipcode} response = Typhoeus::Request.get( "#{@base_uri}/cities.svc/#{apikey}/#{province_id}/#{country_id}") if response.code == 200 j = JSON::parse(response.body) raise "BAD API KEY" if j["GetCitiesByProvinceAndCountryResult"] == nil # NOTE: also happens when a province id is not valid for a country j elsif response.code == 404 nil else raise response.body end end |
.countries ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/zipcodeservices.rb', line 70 def countries #/{apikey}/{zipcode} response = Typhoeus::Request.get( "#{@base_uri}/countries.svc/#{apikey}") if response.code == 200 j = JSON::parse(response.body) raise "BAD API KEY" if j["GetCountriesResult"] == nil j elsif response.code == 404 nil else raise response.body end end |
.distance_between_zipcodes(zip1, zip2) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/zipcodeservices.rb', line 56 def distance_between_zipcodes(zip1, zip2) #/{apikey}/{zipcode} response = Typhoeus::Request.get( "#{@base_uri}/zipcodes.svc/GetDistanceBetweenZipCodes?apikey=#{apikey}&zipcode1=#{zip1}&zipcode2=#{zip2}") if response.code == 200 j = JSON::parse(response.body) raise "BAD API KEY" if j.first[1]["ZipCode1"] == nil j elsif response.code == 404 nil else raise response.body end end |
.radius(zip, rad) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/zipcodeservices.rb', line 28 def radius(zip, rad) #/{apikey}/{zipcode} response = Typhoeus::Request.get( "#{@base_uri}/zipcodes.svc/#{apikey}/#{zip}/#{rad}") if response.code == 200 j = JSON::parse(response.body) raise "BAD API KEY" if j["RetrieveZipCodesInRadiusResult"] == nil j elsif response.code == 404 nil else raise response.body end end |
.radius_by_latlong(lat, long, rad) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/zipcodeservices.rb', line 42 def radius_by_latlong(lat, long, rad) #/{apikey}/{zipcode} response = Typhoeus::Request.get( "#{@base_uri}/zipcodes.svc/GetZipCodesInRadiusLatLong?apikey=#{apikey}&latitude=#{lat}&longitude=#{lon}&radius=#{rad}") if response.code == 200 j = JSON::parse(response.body) raise "BAD API KEY" if j["GetZipCodesInRadiusOfLatLongResult"] == nil j elsif response.code == 404 nil else raise response.body end end |
.states(country_id) ⇒ Object Also known as: provinces
84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/zipcodeservices.rb', line 84 def states(country_id) #/{apikey}/{zipcode} response = Typhoeus::Request.get( "#{@base_uri}/provinces.svc/#{apikey}/#{country_id}") if response.code == 200 j = JSON::parse(response.body) raise "BAD API KEY" if j["GetAllProvincesByCountryIdResult"] == nil j elsif response.code == 404 nil else raise response.body end end |
.zipcode(zip) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/zipcodeservices.rb', line 14 def zipcode(zip) #/{apikey}/{zipcode} response = Typhoeus::Request.get( "#{@base_uri}/zipcodes.svc/#{apikey}/#{zip}") if response.code == 200 j = JSON::parse(response.body) raise "BAD API KEY" if j.first[1]["City"] == nil j elsif response.code == 404 nil else raise response.body end end |