google-maps 3.0.4 → 3.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3e056b5245079cd1615768b06b6e20b8cefc686d790a064a80d443362fc10714
4
- data.tar.gz: f8e5727daf97f14569eea6755830bfc7be5896bf138041b281d455078b1aaa6d
3
+ metadata.gz: c4daaeaea85dad0ecfd2ed66cac2509ec167f3529e95d9d219818544ef097c28
4
+ data.tar.gz: 197b0d42d71e4b6c536da5c5a1a828640e377cd052648fe6f53b3a5d1458a21e
5
5
  SHA512:
6
- metadata.gz: 120b95e15ef178b833abccf2f451114fb7d2e75052298f42973bf8c93e1d1221b655fb260198bfa498d981228acdf65a0cb1c19307fdb32e4dabf59094c292ff
7
- data.tar.gz: fd3ebba90faab9d764f894829d5c2caa0b2e1f7669c95e38c43636d42ea49ac975a9954a8c35472db9a1391875706740c8829c88f81adc397b780d34a333f9d8
6
+ metadata.gz: 20c66bd8480bb08e67e9926a493944a76d04a34086b6ad313eafcb6efbbbe3d2b8f77d69be10c1da82e4cdaf93dc81e3becf6bb9c586e863819cfc82e3469041
7
+ data.tar.gz: 531cc41b79b18c66e6854c49b4fb77cfd91e6440f88ab29c8c8ebb3255a27f16e7431525b2ebef0638b8ee3daea058877f3aeb3152a7a9bfc491c7c283cd36e0
@@ -3,7 +3,7 @@ rvm:
3
3
  - 2.2.2
4
4
  - 2.5.3
5
5
  before_install:
6
- - gem install bundler
6
+ - gem install bundler -v 1.17.3
7
7
  script:
8
8
  - bundle exec rspec
9
9
  - bundle exec rubocop
data/README.md CHANGED
@@ -183,6 +183,9 @@ AVOID = [
183
183
 
184
184
  place = Google::Maps.place("ChIJVXealLU_xkcRja_At0z9AGY")
185
185
 
186
+ place.place_id
187
+ #=> "ChIJVXealLU_xkcRja_At0z9AGY"
188
+
186
189
  place.latitude
187
190
  #=> "52.3679843"
188
191
 
@@ -191,6 +194,18 @@ AVOID = [
191
194
 
192
195
  place.address
193
196
  #=> "Amsterdam, Nederland"
197
+
198
+ place.name
199
+ #=> "Amsterdam"
200
+
201
+ place.photos
202
+ #<Google::Maps::Result height, html_attribution[], photo_reference, width>
203
+
204
+ place.website
205
+ #=> "http://www.amsterdam.nl/"
206
+
207
+ place.url
208
+ #=> "https://maps.google.com/?q=Amsterdam,+Netherlands"
194
209
  ```
195
210
 
196
211
  ### Geocode
@@ -5,13 +5,14 @@ require File.expand_path('api', __dir__)
5
5
  module Google
6
6
  module Maps
7
7
  class Location
8
- attr_reader :address, :latitude, :longitude
8
+ attr_reader :address, :latitude, :longitude, :components
9
9
  alias to_s address
10
10
 
11
- def initialize(address, latitude, longitude)
11
+ def initialize(address, latitude, longitude, components = {})
12
12
  @address = address
13
13
  @latitude = latitude
14
14
  @longitude = longitude
15
+ @components = components
15
16
  end
16
17
 
17
18
  def lat_lng
@@ -25,10 +26,21 @@ module Google
25
26
  Location.new(
26
27
  result.formatted_address,
27
28
  result.geometry.location.lat,
28
- result.geometry.location.lng
29
+ result.geometry.location.lng,
30
+ format_components(result.address_components)
29
31
  )
30
32
  end
31
33
  end
34
+
35
+ def self.format_components(address_components)
36
+ address_components.each_with_object({}) do |v, acc|
37
+ types = v['types']
38
+ types.each do |t|
39
+ acc[t] ||= []
40
+ acc[t] << v['long_name']
41
+ end
42
+ end
43
+ end
32
44
  end
33
45
  end
34
46
  end
@@ -53,6 +53,22 @@ module Google
53
53
  @data.place_id
54
54
  end
55
55
 
56
+ def photos
57
+ @data.photos
58
+ end
59
+
60
+ def url
61
+ @data.url
62
+ end
63
+
64
+ def name
65
+ @data.name
66
+ end
67
+
68
+ def website
69
+ @data.website
70
+ end
71
+
56
72
  def address
57
73
  @data.formatted_address
58
74
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Google
4
4
  module Maps
5
- VERSION = '3.0.4'.freeze
5
+ VERSION = '3.0.5'.freeze
6
6
  end
7
7
  end
@@ -52,6 +52,25 @@ describe Google::Maps do
52
52
  expect(location.lat_lng).to eq([52.3564490, 4.95568890])
53
53
  end
54
54
 
55
+ it 'should extract all components for an address' do
56
+ stub_response('geocoder/science-park-400-amsterdam-en.json')
57
+
58
+ location = Google::Maps.geocode('Science Park 400, Amsterdam').first
59
+ components = location.components
60
+ expect(components['administrative_area_level_1']).to eq(['Noord-Holland'])
61
+ expect(components['administrative_area_level_2']).to eq(['Government of Amsterdam'])
62
+ expect(components['country']).to eq(['The Netherlands'])
63
+ expect(components['establishment']).to eq(['University of Amsterdam'])
64
+ expect(components['locality']).to eq(['Amsterdam'])
65
+ expect(components['political']).to eq(
66
+ ['Middenmeer', 'Watergraafsmeer', 'Amsterdam', 'Government of Amsterdam', 'Noord-Holland', 'The Netherlands']
67
+ )
68
+ expect(components['postal_code']).to eq(['1098 XH'])
69
+ expect(components['route']).to eq(['Science Park Amsterdam'])
70
+ expect(components['street_number']).to eq(['400'])
71
+ expect(components['sublocality']).to eq(%w[Middenmeer Watergraafsmeer])
72
+ end
73
+
55
74
  it 'should handle multiple location for an address' do
56
75
  stub_response('geocoder/amsterdam-en.json')
57
76
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-maps
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.4
4
+ version: 3.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel van Hoesel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-02 00:00:00.000000000 Z
11
+ date: 2019-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -285,7 +285,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
285
285
  - !ruby/object:Gem::Version
286
286
  version: '0'
287
287
  requirements: []
288
- rubygems_version: 3.0.0
288
+ rubygems_version: 3.0.3
289
289
  signing_key:
290
290
  specification_version: 4
291
291
  summary: Ruby wrapper for the Google Maps API