geocoder 1.5.1 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +26 -0
  3. data/LICENSE +1 -1
  4. data/README.md +8 -10
  5. data/bin/console +13 -0
  6. data/examples/autoexpire_cache_redis.rb +2 -0
  7. data/lib/easting_northing.rb +171 -0
  8. data/lib/geocoder/ip_address.rb +2 -1
  9. data/lib/geocoder/lookup.rb +7 -3
  10. data/lib/geocoder/lookups/ban_data_gouv_fr.rb +13 -0
  11. data/lib/geocoder/lookups/base.rb +2 -0
  12. data/lib/geocoder/lookups/esri.rb +2 -0
  13. data/lib/geocoder/lookups/freegeoip.rb +4 -4
  14. data/lib/geocoder/lookups/here.rb +7 -16
  15. data/lib/geocoder/lookups/ip2location.rb +5 -13
  16. data/lib/geocoder/lookups/ipgeolocation.rb +51 -0
  17. data/lib/geocoder/lookups/ipregistry.rb +68 -0
  18. data/lib/geocoder/lookups/latlon.rb +1 -2
  19. data/lib/geocoder/lookups/nationaal_georegister_nl.rb +38 -0
  20. data/lib/geocoder/lookups/osmnames.rb +57 -0
  21. data/lib/geocoder/lookups/pickpoint.rb +1 -1
  22. data/lib/geocoder/lookups/smarty_streets.rb +6 -1
  23. data/lib/geocoder/lookups/telize.rb +1 -1
  24. data/lib/geocoder/lookups/tencent.rb +9 -9
  25. data/lib/geocoder/lookups/uk_ordnance_survey_names.rb +59 -0
  26. data/lib/geocoder/lookups/yandex.rb +3 -4
  27. data/lib/geocoder/results/baidu.rb +0 -4
  28. data/lib/geocoder/results/ban_data_gouv_fr.rb +1 -1
  29. data/lib/geocoder/results/here.rb +4 -1
  30. data/lib/geocoder/results/ipgeolocation.rb +59 -0
  31. data/lib/geocoder/results/ipregistry.rb +308 -0
  32. data/lib/geocoder/results/nationaal_georegister_nl.rb +62 -0
  33. data/lib/geocoder/results/osmnames.rb +56 -0
  34. data/lib/geocoder/results/uk_ordnance_survey_names.rb +59 -0
  35. data/lib/geocoder/results/yandex.rb +217 -59
  36. data/lib/geocoder/sql.rb +4 -4
  37. data/lib/geocoder/version.rb +1 -1
  38. data/lib/hash_recursive_merge.rb +1 -2
  39. data/lib/maxmind_database.rb +3 -3
  40. metadata +19 -15
  41. data/lib/geocoder/lookups/geocoder_us.rb +0 -51
  42. data/lib/geocoder/results/geocoder_us.rb +0 -39
@@ -1,51 +0,0 @@
1
- require 'geocoder/lookups/base'
2
- require "geocoder/results/geocoder_us"
3
-
4
- module Geocoder::Lookup
5
- class GeocoderUs < Base
6
-
7
- def name
8
- "Geocoder.us"
9
- end
10
-
11
- def supported_protocols
12
- [:http]
13
- end
14
-
15
- private # ----------------------------------------------------------------
16
-
17
- def base_query_url(query)
18
- base_query_url_with_optional_key(configuration.api_key)
19
- end
20
-
21
- def cache_key(query)
22
- base_query_url_with_optional_key(nil) + url_query_string(query)
23
- end
24
-
25
- def base_query_url_with_optional_key(key = nil)
26
- base = "#{protocol}://"
27
- if configuration.api_key
28
- base << "#{configuration.api_key}@"
29
- end
30
- base + "geocoder.us/member/service/csv/geocode?"
31
- end
32
-
33
- def results(query)
34
- return [] unless doc = fetch_data(query)
35
- if doc[0].to_s =~ /^(\d+)\:/
36
- return []
37
- else
38
- return [doc.size == 5 ? ((doc[0..1] << nil) + doc[2..4]) : doc]
39
- end
40
- end
41
-
42
- def query_url_params(query)
43
- (query.text =~ /^\d{5}(?:-\d{4})?$/ ? {:zip => query} : {:address => query.sanitized_text}).merge(super)
44
- end
45
-
46
- def parse_raw_data(raw_data)
47
- raw_data.chomp.split(',')
48
- end
49
- end
50
- end
51
-
@@ -1,39 +0,0 @@
1
- require 'geocoder/results/base'
2
-
3
- module Geocoder::Result
4
- class GeocoderUs < Base
5
- def coordinates
6
- [@data[0].to_f, @data[1].to_f]
7
- end
8
-
9
- def address(format = :full)
10
- "#{street_address}, #{city}, #{state} #{postal_code}, #{country}".sub(/^[ ,]*/, "")
11
- end
12
-
13
- def street_address
14
- @data[2]
15
- end
16
-
17
- def city
18
- @data[3]
19
- end
20
-
21
- def state
22
- @data[4]
23
- end
24
-
25
- alias_method :state_code, :state
26
-
27
- def postal_code
28
- @data[5]
29
- end
30
-
31
- def country
32
- 'United States'
33
- end
34
-
35
- def country_code
36
- 'US'
37
- end
38
- end
39
- end