geocoder 1.7.3 → 1.7.4
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +2 -2
- data/examples/app_defined_lookup_services.rb +22 -0
- data/lib/geocoder/lookup.rb +14 -2
- data/lib/geocoder/lookups/freegeoip.rb +8 -6
- data/lib/geocoder/lookups/location_iq.rb +5 -1
- data/lib/geocoder/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e298d39c596857e28539779ed539ad5f9995368f3021f6541deb53d478b80a0a
|
4
|
+
data.tar.gz: ed9831a260f47cba9d9bc9a069c6e04362621e3cb72175c56332973196420679
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7801cdd189f6ae89c512b42ce57d4a34a37a0750596f2df4f299693be2318ab2e3d0f55970ec0f9f14435c05d86c56bb3989f28748f972aa8d8fc9409adf927
|
7
|
+
data.tar.gz: cc35bb7280bcb43bb9c082dfac6ca5dc395fe3690080d809054761cf147a943868d05ce4f8ce9e4a31b2c67e019e483abcb7c114c7ca711b9c9961e523e57425
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,11 @@ Changelog
|
|
3
3
|
|
4
4
|
Major changes to Geocoder for each release. Please see the Git log for complete list of changes.
|
5
5
|
|
6
|
+
1.7.4 (2022 Mar 14)
|
7
|
+
-------------------
|
8
|
+
* Add ability to use app-defined lookups (thanks github.com/januszm).
|
9
|
+
* Updates to LocationIQ and FreeGeoIP lookups.
|
10
|
+
|
6
11
|
1.7.3 (2022 Jan 17)
|
7
12
|
-------------------
|
8
13
|
* Get rid of unnecessary cache_prefix deprecation warnings.
|
data/README.md
CHANGED
@@ -20,7 +20,7 @@ Compatibility:
|
|
20
20
|
|
21
21
|
* Ruby versions: 2.1+, and JRuby.
|
22
22
|
* Databases: MySQL, PostgreSQL, SQLite, and MongoDB.
|
23
|
-
* Rails: 5.x and
|
23
|
+
* Rails: 5.x, 6.x, and 7.x.
|
24
24
|
* Works outside of Rails with the `json` (for MRI) or `json_pure` (for JRuby) gem.
|
25
25
|
|
26
26
|
|
@@ -78,7 +78,7 @@ results.first.address
|
|
78
78
|
# => "Hôtel de Ville, 75004 Paris, France"
|
79
79
|
```
|
80
80
|
|
81
|
-
You can also look up the location of an IP
|
81
|
+
You can also look up the location of an IP address:
|
82
82
|
|
83
83
|
```ruby
|
84
84
|
results = Geocoder.search("172.56.21.89")
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# To extend the Geocoder with additional lookups that come from the application,
|
2
|
+
# not shipped with the gem, define a "child" lookup in your application, based on existing one.
|
3
|
+
# This is required because the Geocoder::Configuration is a Singleton and stores one api key per lookup.
|
4
|
+
|
5
|
+
# in app/libs/geocoder/lookup/my_preciousss.rb
|
6
|
+
module Geocoder::Lookup
|
7
|
+
class MyPreciousss < Google
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
# Update Geocoder's street_services on initialize:
|
12
|
+
# config/initializers/geocoder.rb
|
13
|
+
Geocoder::Lookup.street_services << :my_preciousss
|
14
|
+
|
15
|
+
# Override the configuration when necessary (e.g. provide separate Google API key for the account):
|
16
|
+
Geocoder.configure(my_preciousss: { api_key: 'abcdef' })
|
17
|
+
|
18
|
+
# Lastly, search using your custom lookup service/api keys
|
19
|
+
Geocoder.search("Paris", lookup: :my_preciousss)
|
20
|
+
|
21
|
+
# This is useful when we have groups of users in the application who use Google paid services
|
22
|
+
# and we want to properly separate them and allow using individual API KEYS or timeouts.
|
data/lib/geocoder/lookup.rb
CHANGED
@@ -117,8 +117,7 @@ module Geocoder
|
|
117
117
|
def spawn(name)
|
118
118
|
if all_services.include?(name)
|
119
119
|
name = name.to_s
|
120
|
-
|
121
|
-
Geocoder::Lookup.const_get(classify_name(name)).new
|
120
|
+
instantiate_lookup(name)
|
122
121
|
else
|
123
122
|
valids = all_services.map(&:inspect).join(", ")
|
124
123
|
raise ConfigurationError, "Please specify a valid lookup for Geocoder " +
|
@@ -132,5 +131,18 @@ module Geocoder
|
|
132
131
|
def classify_name(filename)
|
133
132
|
filename.to_s.split("_").map{ |i| i[0...1].upcase + i[1..-1] }.join
|
134
133
|
end
|
134
|
+
|
135
|
+
##
|
136
|
+
# Safely instantiate Lookup
|
137
|
+
#
|
138
|
+
def instantiate_lookup(name)
|
139
|
+
class_name = classify_name(name)
|
140
|
+
begin
|
141
|
+
Geocoder::Lookup.const_get(class_name)
|
142
|
+
rescue NameError
|
143
|
+
require "geocoder/lookups/#{name}"
|
144
|
+
end
|
145
|
+
Geocoder::Lookup.const_get(class_name).new
|
146
|
+
end
|
135
147
|
end
|
136
148
|
end
|
@@ -17,14 +17,16 @@ module Geocoder::Lookup
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
def query_url(query)
|
21
|
-
"#{protocol}://#{host}/json/#{query.sanitized_text}"
|
22
|
-
end
|
23
|
-
|
24
20
|
private # ---------------------------------------------------------------
|
25
21
|
|
26
|
-
def
|
27
|
-
|
22
|
+
def base_query_url(query)
|
23
|
+
"#{protocol}://#{host}/json/#{query.sanitized_text}?"
|
24
|
+
end
|
25
|
+
|
26
|
+
def query_url_params(query)
|
27
|
+
{
|
28
|
+
:apikey => configuration.api_key
|
29
|
+
}.merge(super)
|
28
30
|
end
|
29
31
|
|
30
32
|
def parse_raw_data(raw_data)
|
@@ -11,6 +11,10 @@ module Geocoder::Lookup
|
|
11
11
|
["api_key"]
|
12
12
|
end
|
13
13
|
|
14
|
+
def supported_protocols
|
15
|
+
[:https]
|
16
|
+
end
|
17
|
+
|
14
18
|
private # ----------------------------------------------------------------
|
15
19
|
|
16
20
|
def base_query_url(query)
|
@@ -25,7 +29,7 @@ module Geocoder::Lookup
|
|
25
29
|
end
|
26
30
|
|
27
31
|
def configured_host
|
28
|
-
configuration[:host] || "locationiq.
|
32
|
+
configuration[:host] || "us1.locationiq.com"
|
29
33
|
end
|
30
34
|
|
31
35
|
def results(query)
|
data/lib/geocoder/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: geocoder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Reisner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Object geocoding (by street or IP address), reverse geocoding (coordinates
|
14
14
|
to street address), distance queries for ActiveRecord and Mongoid, result caching,
|
@@ -25,6 +25,7 @@ files:
|
|
25
25
|
- README.md
|
26
26
|
- bin/console
|
27
27
|
- bin/geocode
|
28
|
+
- examples/app_defined_lookup_services.rb
|
28
29
|
- examples/cache_bypass.rb
|
29
30
|
- examples/reverse_geocode_job.rb
|
30
31
|
- lib/easting_northing.rb
|