google_places 0.33.0 → 0.34.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +1 -1
- data/README.rdoc +14 -0
- data/google_places.gemspec +1 -1
- data/lib/google_places/client.rb +49 -12
- data/lib/google_places/review.rb +10 -8
- data/lib/google_places/spot.rb +2 -1
- data/spec/google_places/client_spec.rb +140 -44
- data/spec/google_places/spot_spec.rb +1 -1
- metadata +34 -21
- checksums.yaml +0 -7
data/CHANGELOG.md
ADDED
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -99,6 +99,20 @@ Search by multiple types and exclude multiple types
|
|
99
99
|
|
100
100
|
@client.spots_by_query('Pizza near Miami Florida', :types => ['restaurant', 'food'], :exclude => ['cafe', 'establishment'])
|
101
101
|
|
102
|
+
=== Retrieving a collection of spots with complete details
|
103
|
+
|
104
|
+
Google limits the details that are returned in any API calls for a collection,
|
105
|
+
so you'll often find that details such as phone numbers are missing in a
|
106
|
+
collection of spots, but are filled in when retrieving a single spot.
|
107
|
+
|
108
|
+
If you require these extra details to be completed when retrieving a number of
|
109
|
+
results, you can pass in the <tt>detail: true</tt> option to any method that returns
|
110
|
+
a collection of spots.
|
111
|
+
|
112
|
+
This option should be used with care, as it adds an additional API call
|
113
|
+
for EACH spot in the collection. E.g. a spots collection of 100 spots
|
114
|
+
will use 101 API calls when the <tt>detail: true</tt> option is set.
|
115
|
+
|
102
116
|
=== Retrieving a single spot
|
103
117
|
|
104
118
|
First register a new Client:
|
data/google_places.gemspec
CHANGED
data/lib/google_places/client.rb
CHANGED
@@ -93,14 +93,11 @@ module GooglePlaces
|
|
93
93
|
# @see http://spreadsheets.google.com/pub?key=p9pdwsai2hDMsLkXsoM05KQ&gid=1 List of supported languages
|
94
94
|
# @see https://developers.google.com/maps/documentation/places/supported_types List of supported types
|
95
95
|
def spots(lat, lng, options = {})
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
else
|
102
|
-
spots
|
103
|
-
end
|
96
|
+
detail = @options.merge!(options).delete(:detail)
|
97
|
+
collection_detail_level(
|
98
|
+
Spot.list(lat, lng, @api_key, @options),
|
99
|
+
detail
|
100
|
+
)
|
104
101
|
end
|
105
102
|
|
106
103
|
# Search for a Spot with a reference key
|
@@ -153,11 +150,18 @@ module GooglePlaces
|
|
153
150
|
# @option options [Object] :retry_options[:status] ([])
|
154
151
|
# @option options [Integer] :retry_options[:max] (0) the maximum retries
|
155
152
|
# @option options [Integer] :retry_options[:delay] (5) the delay between each retry in seconds
|
153
|
+
# @option options [Boolean] :detail
|
154
|
+
# A boolean to return spots with full detail information(its complete address, phone number, user rating, reviews, etc)
|
155
|
+
# Note) This makes an extra call for each spot for more information.
|
156
156
|
#
|
157
157
|
# @see http://spreadsheets.google.com/pub?key=p9pdwsai2hDMsLkXsoM05KQ&gid=1 List of supported languages
|
158
158
|
# @see https://developers.google.com/maps/documentation/places/supported_types List of supported types
|
159
159
|
def spots_by_query(query, options = {})
|
160
|
-
|
160
|
+
detail = @options.merge!(options).delete(:detail)
|
161
|
+
collection_detail_level(
|
162
|
+
Spot.list_by_query(query, @api_key, @options),
|
163
|
+
detail
|
164
|
+
)
|
161
165
|
end
|
162
166
|
# Search for Spots within a give SW|NE bounds with query
|
163
167
|
#
|
@@ -190,10 +194,17 @@ module GooglePlaces
|
|
190
194
|
# @option options [Object] :retry_options[:status] ([])
|
191
195
|
# @option options [Integer] :retry_options[:max] (0) the maximum retries
|
192
196
|
# @option options [Integer] :retry_options[:delay] (5) the delay between each retry in seconds
|
197
|
+
# @option options [Boolean] :detail
|
198
|
+
# A boolean to return spots with full detail information(its complete address, phone number, user rating, reviews, etc)
|
199
|
+
# Note) This makes an extra call for each spot for more information.
|
193
200
|
#
|
194
201
|
# @see https://developers.google.com/maps/documentation/places/supported_types List of supported types
|
195
202
|
def spots_by_bounds(bounds, options = {})
|
196
|
-
|
203
|
+
detail = @options.merge!(options).delete(:detail)
|
204
|
+
collection_detail_level(
|
205
|
+
Spot.list_by_bounds(bounds, @api_key, @options),
|
206
|
+
detail
|
207
|
+
)
|
197
208
|
end
|
198
209
|
# Search for Spots with a pagetoken
|
199
210
|
#
|
@@ -207,10 +218,17 @@ module GooglePlaces
|
|
207
218
|
# @option options [Object] :retry_options[:status] ([])
|
208
219
|
# @option options [Integer] :retry_options[:max] (0) the maximum retries
|
209
220
|
# @option options [Integer] :retry_options[:delay] (5) the delay between each retry in seconds
|
221
|
+
# @option options [Boolean] :detail
|
222
|
+
# A boolean to return spots with full detail information(its complete address, phone number, user rating, reviews, etc)
|
223
|
+
# Note) This makes an extra call for each spot for more information.
|
210
224
|
#
|
211
225
|
# @see https://developers.google.com/maps/documentation/places/supported_types List of supported types
|
212
226
|
def spots_by_pagetoken(pagetoken, options = {})
|
213
|
-
|
227
|
+
detail = @options.merge!(options).delete(:detail)
|
228
|
+
collection_detail_level(
|
229
|
+
Spot.list_by_pagetoken(pagetoken, @api_key, @options),
|
230
|
+
detail
|
231
|
+
)
|
214
232
|
end
|
215
233
|
|
216
234
|
# Radar Search Service allows you to search for up to 200 Places at once, but with less detail than is typically returned from a Text Search or Nearby Search request. The search response will include up to 200 Places, identified only by their geographic coordinates and reference. You can send a Place Details request for more information about any of them.
|
@@ -244,10 +262,17 @@ module GooglePlaces
|
|
244
262
|
# Restrict your search to only those locations that are Zagat selected businesses.
|
245
263
|
# This parameter does not require a true or false value, simply including the parameter in the request is sufficient to restrict your search.
|
246
264
|
# The zagatselected parameter is experimental, and only available to Places API enterprise customers.
|
265
|
+
# @option options [Boolean] :detail
|
266
|
+
# A boolean to return spots with full detail information(its complete address, phone number, user rating, reviews, etc)
|
267
|
+
# Note) This makes an extra call for each spot for more information.
|
247
268
|
#
|
248
269
|
# @see https://developers.google.com/places/documentation/search#RadarSearchRequests
|
249
270
|
def spots_by_radar(lat, lng, options = {})
|
250
|
-
|
271
|
+
detail = @options.merge!(options).delete(:detail)
|
272
|
+
collection_detail_level(
|
273
|
+
Spot.list_by_radar(lat, lng, @api_key, @options),
|
274
|
+
detail
|
275
|
+
)
|
251
276
|
end
|
252
277
|
|
253
278
|
# Query for Place Predictions
|
@@ -272,5 +297,17 @@ module GooglePlaces
|
|
272
297
|
def predictions_by_input(input, options = {})
|
273
298
|
Prediction.list_by_input(input, @api_key, @options.merge(options))
|
274
299
|
end
|
300
|
+
|
301
|
+
private
|
302
|
+
|
303
|
+
def collection_detail_level(spots, detail = false)
|
304
|
+
if detail
|
305
|
+
spots.map do |spot|
|
306
|
+
Spot.find(spot.place_id, @api_key, @options)
|
307
|
+
end
|
308
|
+
else
|
309
|
+
spots
|
310
|
+
end
|
311
|
+
end
|
275
312
|
end
|
276
313
|
end
|
data/lib/google_places/review.rb
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
module GooglePlaces
|
2
2
|
class Review
|
3
|
-
attr_accessor :rating, :type, :author_name, :author_url, :text, :time
|
3
|
+
attr_accessor :rating, :type, :author_name, :author_url, :text, :time,
|
4
|
+
:profile_photo_url
|
4
5
|
|
5
|
-
def initialize(rating, type, author_name, author_url, text, time)
|
6
|
-
@rating
|
7
|
-
@type
|
8
|
-
@author_name
|
9
|
-
@author_url
|
10
|
-
@text
|
11
|
-
@time
|
6
|
+
def initialize(rating, type, author_name, author_url, text, time, profile_photo_url)
|
7
|
+
@rating = rating
|
8
|
+
@type = type
|
9
|
+
@author_name = author_name
|
10
|
+
@author_url = author_url
|
11
|
+
@text = text
|
12
|
+
@time = time
|
13
|
+
@profile_photo_url = profile_photo_url
|
12
14
|
end
|
13
15
|
end
|
14
16
|
end
|
data/lib/google_places/spot.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'google_places/review'
|
2
2
|
module GooglePlaces
|
3
3
|
class Spot
|
4
|
-
attr_accessor :lat, :lng, :viewport, :name, :icon, :reference, :vicinity, :types, :id, :formatted_phone_number, :international_phone_number, :formatted_address, :address_components, :street_number, :street, :city, :region, :postal_code, :country, :rating, :url, :cid, :website, :reviews, :aspects, :zagat_selected, :zagat_reviewed, :photos, :review_summary, :nextpagetoken, :price_level, :opening_hours, :events, :utc_offset, :place_id
|
4
|
+
attr_accessor :lat, :lng, :viewport, :name, :icon, :reference, :vicinity, :types, :id, :formatted_phone_number, :international_phone_number, :formatted_address, :address_components, :street_number, :street, :city, :region, :postal_code, :country, :rating, :url, :cid, :website, :reviews, :aspects, :zagat_selected, :zagat_reviewed, :photos, :review_summary, :nextpagetoken, :price_level, :opening_hours, :events, :utc_offset, :place_id, :permanently_closed
|
5
5
|
|
6
6
|
# Search for Spots at the provided location
|
7
7
|
#
|
@@ -441,6 +441,7 @@ module GooglePlaces
|
|
441
441
|
@nextpagetoken = json_result_object['nextpagetoken']
|
442
442
|
@events = events_component(json_result_object['events'])
|
443
443
|
@utc_offset = json_result_object['utc_offset']
|
444
|
+
@permanently_closed = json_result_object['permanently_closed']
|
444
445
|
end
|
445
446
|
|
446
447
|
def [] (key)
|
@@ -1,69 +1,165 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe GooglePlaces::Client do
|
4
|
+
let(:client) { GooglePlaces::Client.new(api_key) }
|
5
|
+
let(:fake_spot) { Object.new }
|
6
|
+
|
7
|
+
before do
|
8
|
+
allow(fake_spot).to receive(:place_id) { 1 }
|
9
|
+
end
|
10
|
+
|
4
11
|
it 'should initialize with an api_key' do
|
5
|
-
|
6
|
-
expect(@client.api_key).to eq(api_key)
|
12
|
+
expect(client.api_key).to eq(api_key)
|
7
13
|
end
|
8
14
|
|
9
|
-
|
10
|
-
lat
|
11
|
-
|
12
|
-
|
15
|
+
describe '::spots' do
|
16
|
+
let(:lat) { '-33.8670522' }
|
17
|
+
let(:lng) { '151.1957362' }
|
18
|
+
it 'should request spots' do
|
19
|
+
expect(GooglePlaces::Spot).to receive(:list).with(lat, lng, api_key, {})
|
20
|
+
client.spots(lat, lng)
|
21
|
+
end
|
13
22
|
|
14
|
-
|
15
|
-
|
23
|
+
it 'does not call find on GooglePlces::Spot' do
|
24
|
+
allow(GooglePlaces::Spot).to receive(:list) { [fake_spot] }
|
25
|
+
expect(GooglePlaces::Spot).not_to receive(:find)
|
26
|
+
client.spots(lat, lng)
|
27
|
+
end
|
16
28
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
29
|
+
context 'with detail set to true' do
|
30
|
+
it 'calls find on GooglePlaces::Spot' do
|
31
|
+
allow(GooglePlaces::Spot).to receive(:list) { [fake_spot] }
|
32
|
+
expect(GooglePlaces::Spot).to receive(:find)
|
33
|
+
client.spots(lat, lng, detail: true)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
21
37
|
|
22
|
-
|
38
|
+
describe '::spot' do
|
39
|
+
let(:place_id) { 'ChIJu46S-ZZhLxMROG5lkwZ3D7k' }
|
40
|
+
it 'should request a single spot by place_id' do
|
41
|
+
expect(GooglePlaces::Spot).to receive(:find).with(place_id, api_key, {})
|
42
|
+
client.spot(place_id)
|
43
|
+
end
|
23
44
|
end
|
24
45
|
|
25
|
-
|
26
|
-
query
|
27
|
-
|
28
|
-
|
46
|
+
describe '::spots_by_query' do
|
47
|
+
let(:query) { 'Statue of liberty, New York' }
|
48
|
+
it 'should request spots by query' do
|
49
|
+
expect(GooglePlaces::Spot).to receive(:list_by_query).with(
|
50
|
+
query,
|
51
|
+
api_key,
|
52
|
+
{}
|
53
|
+
)
|
54
|
+
client.spots_by_query(query)
|
55
|
+
end
|
56
|
+
|
57
|
+
it 'does not call find on GooglePlces::Spot' do
|
58
|
+
allow(GooglePlaces::Spot).to receive(:list_by_query) { [fake_spot] }
|
59
|
+
expect(GooglePlaces::Spot).not_to receive(:find)
|
60
|
+
client.spots_by_query(query)
|
61
|
+
end
|
29
62
|
|
30
|
-
|
63
|
+
context 'with detail set to true' do
|
64
|
+
it 'calls find on GooglePlaces::Spot' do
|
65
|
+
allow(GooglePlaces::Spot).to receive(:list_by_query) { [fake_spot] }
|
66
|
+
expect(GooglePlaces::Spot).to receive(:find)
|
67
|
+
client.spots_by_query(query, detail: true)
|
68
|
+
end
|
69
|
+
end
|
31
70
|
end
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
71
|
+
|
72
|
+
describe '::spots_by_bounds' do
|
73
|
+
let(:query) { 'pizza' }
|
74
|
+
let(:bounds) do
|
75
|
+
{
|
76
|
+
start_point: { lat: '36.06686213257888', lng: '-86.94168090820312' },
|
77
|
+
end_point: { lat: '36.268635800737876', lng: '-86.66152954101562' }
|
78
|
+
}
|
79
|
+
end
|
80
|
+
|
81
|
+
it 'should request spots by bounds' do
|
82
|
+
expect(GooglePlaces::Spot).to receive(:list_by_bounds).with(
|
83
|
+
bounds, api_key,
|
84
|
+
query: query
|
85
|
+
)
|
86
|
+
client.spots_by_bounds(bounds, query: query)
|
87
|
+
end
|
88
|
+
|
89
|
+
it 'does not call find on GooglePlces::Spot' do
|
90
|
+
allow(GooglePlaces::Spot).to receive(:list_by_bounds) { [fake_spot] }
|
91
|
+
expect(GooglePlaces::Spot).not_to receive(:find)
|
92
|
+
client.spots_by_bounds(bounds, query: query)
|
93
|
+
end
|
94
|
+
|
95
|
+
context 'with detail set to true' do
|
96
|
+
it 'calls find on GooglePlaces::Spot' do
|
97
|
+
allow(GooglePlaces::Spot).to receive(:list_by_bounds) { [fake_spot] }
|
98
|
+
expect(GooglePlaces::Spot).to receive(:find)
|
99
|
+
client.spots_by_bounds(bounds, query: query, detail: true)
|
100
|
+
end
|
101
|
+
end
|
39
102
|
end
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
103
|
+
|
104
|
+
describe '::spots_by_radar' do
|
105
|
+
let(:keywords) { 'landmarks' }
|
106
|
+
let(:lat) { '51.511627' }
|
107
|
+
let(:lng) { '-0.183778' }
|
108
|
+
let(:radius) { 5000 }
|
109
|
+
|
110
|
+
it 'should request spots by radar' do
|
111
|
+
expect(GooglePlaces::Spot).to receive(:list_by_radar).with(
|
112
|
+
lat,
|
113
|
+
lng,
|
114
|
+
api_key,
|
115
|
+
radius: radius,
|
116
|
+
keyword: keywords
|
117
|
+
)
|
118
|
+
client.spots_by_radar(lat, lng, radius: radius, keyword: keywords)
|
119
|
+
end
|
120
|
+
|
121
|
+
it 'does not call find on GooglePlces::Spot' do
|
122
|
+
allow(GooglePlaces::Spot).to receive(:list_by_radar) { [fake_spot] }
|
123
|
+
expect(GooglePlaces::Spot).not_to receive(:find)
|
124
|
+
client.spots_by_radar(lat, lng, radius: radius, keyword: keywords)
|
125
|
+
end
|
126
|
+
|
127
|
+
context 'with detail set to true' do
|
128
|
+
it 'calls find on GooglePlaces::Spot' do
|
129
|
+
allow(GooglePlaces::Spot).to receive(:list_by_radar) { [fake_spot] }
|
130
|
+
expect(GooglePlaces::Spot).to receive(:find)
|
131
|
+
client.spots_by_radar(
|
132
|
+
lat,
|
133
|
+
lng,
|
134
|
+
radius: radius,
|
135
|
+
keyword: keywords,
|
136
|
+
detail: true
|
137
|
+
)
|
138
|
+
end
|
139
|
+
end
|
48
140
|
end
|
49
141
|
|
50
|
-
|
51
|
-
input
|
52
|
-
@client = GooglePlaces::Client.new(api_key)
|
53
|
-
expect(GooglePlaces::Prediction).to receive(:list_by_input).with(input, api_key, {})
|
142
|
+
describe '::predictions_by_input' do
|
143
|
+
let(:input) { 'Atlanta' }
|
54
144
|
|
55
|
-
|
145
|
+
it 'should request predictions by input' do
|
146
|
+
expect(GooglePlaces::Prediction).to receive(:list_by_input).with(
|
147
|
+
input,
|
148
|
+
api_key,
|
149
|
+
{}
|
150
|
+
)
|
151
|
+
client.predictions_by_input(input)
|
152
|
+
end
|
56
153
|
end
|
57
154
|
|
58
|
-
|
155
|
+
describe 'detailed spots', vcr: { cassette_name: 'list_spots_with_detail' } do
|
156
|
+
let(:lat) { '28.3852377' }
|
157
|
+
let(:lng) { '-81.566068' }
|
59
158
|
it 'should return spots with detail information' do
|
60
|
-
lat, lng
|
61
|
-
@client = GooglePlaces::Client.new(api_key)
|
62
|
-
|
63
|
-
spots = @client.spots(lat, lng, detail: true)
|
159
|
+
spots = client.spots(lat, lng, detail: true)
|
64
160
|
expect(spots).to_not be_nil
|
65
161
|
|
66
|
-
|
162
|
+
spots.each do |spot|
|
67
163
|
expect(spot.address_components).not_to be_nil
|
68
164
|
expect(spot.city).not_to be_nil
|
69
165
|
expect(spot.country).not_to be_nil
|
@@ -161,7 +161,7 @@ describe GooglePlaces::Spot do
|
|
161
161
|
it 'should be a Spot' do
|
162
162
|
expect(@spot.class).to eq(GooglePlaces::Spot)
|
163
163
|
end
|
164
|
-
%w(reference vicinity lat lng viewport name icon types id formatted_phone_number international_phone_number formatted_address address_components street_number street city region postal_code country rating url types website price_level opening_hours events utc_offset place_id).each do |attribute|
|
164
|
+
%w(reference vicinity lat lng viewport name icon types id formatted_phone_number international_phone_number formatted_address address_components street_number street city region postal_code country rating url types website price_level opening_hours events utc_offset place_id permanently_closed).each do |attribute|
|
165
165
|
it "should have the attribute: #{attribute}" do
|
166
166
|
expect(@spot.respond_to?(attribute)).to eq(true)
|
167
167
|
end
|
metadata
CHANGED
@@ -1,89 +1,100 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google_places
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.34.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Marcel de Graaf
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2017-
|
12
|
+
date: 2017-06-07 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: httparty
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- -
|
19
|
+
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
19
21
|
version: 0.13.1
|
20
|
-
- -
|
22
|
+
- - <
|
21
23
|
- !ruby/object:Gem::Version
|
22
24
|
version: 0.14.1
|
23
25
|
type: :runtime
|
24
26
|
prerelease: false
|
25
27
|
version_requirements: !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
26
29
|
requirements:
|
27
|
-
- -
|
30
|
+
- - ! '>='
|
28
31
|
- !ruby/object:Gem::Version
|
29
32
|
version: 0.13.1
|
30
|
-
- -
|
33
|
+
- - <
|
31
34
|
- !ruby/object:Gem::Version
|
32
35
|
version: 0.14.1
|
33
36
|
- !ruby/object:Gem::Dependency
|
34
37
|
name: rspec
|
35
38
|
requirement: !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
36
40
|
requirements:
|
37
|
-
- -
|
41
|
+
- - ~>
|
38
42
|
- !ruby/object:Gem::Version
|
39
43
|
version: '3.0'
|
40
44
|
type: :development
|
41
45
|
prerelease: false
|
42
46
|
version_requirements: !ruby/object:Gem::Requirement
|
47
|
+
none: false
|
43
48
|
requirements:
|
44
|
-
- -
|
49
|
+
- - ~>
|
45
50
|
- !ruby/object:Gem::Version
|
46
51
|
version: '3.0'
|
47
52
|
- !ruby/object:Gem::Dependency
|
48
53
|
name: addressable
|
49
54
|
requirement: !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
50
56
|
requirements:
|
51
|
-
- -
|
57
|
+
- - ~>
|
52
58
|
- !ruby/object:Gem::Version
|
53
59
|
version: 2.4.0
|
54
60
|
type: :development
|
55
61
|
prerelease: false
|
56
62
|
version_requirements: !ruby/object:Gem::Requirement
|
63
|
+
none: false
|
57
64
|
requirements:
|
58
|
-
- -
|
65
|
+
- - ~>
|
59
66
|
- !ruby/object:Gem::Version
|
60
67
|
version: 2.4.0
|
61
68
|
- !ruby/object:Gem::Dependency
|
62
69
|
name: webmock
|
63
70
|
requirement: !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
64
72
|
requirements:
|
65
|
-
- -
|
73
|
+
- - ~>
|
66
74
|
- !ruby/object:Gem::Version
|
67
75
|
version: '1.18'
|
68
76
|
type: :development
|
69
77
|
prerelease: false
|
70
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
none: false
|
71
80
|
requirements:
|
72
|
-
- -
|
81
|
+
- - ~>
|
73
82
|
- !ruby/object:Gem::Version
|
74
83
|
version: '1.18'
|
75
84
|
- !ruby/object:Gem::Dependency
|
76
85
|
name: vcr
|
77
86
|
requirement: !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
78
88
|
requirements:
|
79
|
-
- -
|
89
|
+
- - ~>
|
80
90
|
- !ruby/object:Gem::Version
|
81
91
|
version: '2.9'
|
82
92
|
type: :development
|
83
93
|
prerelease: false
|
84
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
85
96
|
requirements:
|
86
|
-
- -
|
97
|
+
- - ~>
|
87
98
|
- !ruby/object:Gem::Version
|
88
99
|
version: '2.9'
|
89
100
|
description: This gem provides a Ruby wrapper around the Google Places API for use
|
@@ -94,8 +105,9 @@ executables: []
|
|
94
105
|
extensions: []
|
95
106
|
extra_rdoc_files: []
|
96
107
|
files:
|
97
|
-
-
|
98
|
-
-
|
108
|
+
- .gitignore
|
109
|
+
- .travis.yml
|
110
|
+
- CHANGELOG.md
|
99
111
|
- Gemfile
|
100
112
|
- Gemfile.lock
|
101
113
|
- LICENSE.txt
|
@@ -139,26 +151,27 @@ files:
|
|
139
151
|
homepage: https://github.com/marceldegraaf/google_places
|
140
152
|
licenses:
|
141
153
|
- MIT
|
142
|
-
metadata: {}
|
143
154
|
post_install_message:
|
144
155
|
rdoc_options: []
|
145
156
|
require_paths:
|
146
157
|
- lib
|
147
158
|
required_ruby_version: !ruby/object:Gem::Requirement
|
159
|
+
none: false
|
148
160
|
requirements:
|
149
|
-
- -
|
161
|
+
- - ! '>='
|
150
162
|
- !ruby/object:Gem::Version
|
151
163
|
version: '0'
|
152
164
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
|
+
none: false
|
153
166
|
requirements:
|
154
|
-
- -
|
167
|
+
- - ! '>='
|
155
168
|
- !ruby/object:Gem::Version
|
156
169
|
version: '0'
|
157
170
|
requirements: []
|
158
171
|
rubyforge_project:
|
159
|
-
rubygems_version:
|
172
|
+
rubygems_version: 1.8.23.2
|
160
173
|
signing_key:
|
161
|
-
specification_version:
|
174
|
+
specification_version: 3
|
162
175
|
summary: A Ruby wrapper around the Google Places API.
|
163
176
|
test_files:
|
164
177
|
- spec/api_key.sample.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 3e89cd376d97e4bbadf049864a5df5f98d032630
|
4
|
-
data.tar.gz: c5d6c2bb190192b928dc3abab4956615a99d92f0
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 568369db3f5e9d71a65363c2a806c36cabc94fe55fc5370b6afaede67e3a4d8f4ff1fb24ea81c3dba0ed282ee3f855bed00644a84b4e267e8f67e0e73907d52e
|
7
|
-
data.tar.gz: df20278fd0930297bf41446bece309703011177f31181dbbf6109a6cd7e9485f2d892e3fdaf06c770434914e202a0dbe9605f8d7f87016dfaf4872ecb597a692
|