google_places 0.18.0 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NDQxZDY1Nzk5N2RjMGFkNzMxNWZjZWVjMzA5YTc3YjVkYzExNTQwMw==
4
+ MGY1NTVkOWNjZDRlZjlmZTNjNzE2MmZlODg3NjNhNzM2YzIxMWE3NA==
5
5
  data.tar.gz: !binary |-
6
- NjIzMmFjY2EyYzI1ZDMxMmVhMWNhMjIzYTlkNDVkN2Y2YzAzYzEzOQ==
7
- !binary "U0hBNTEy":
6
+ YzczNDA5NzE4ZjkxMDA4MWFlMTg5YmI5ZmQzY2EyZTI2MDE0MGZjMg==
7
+ SHA512:
8
8
  metadata.gz: !binary |-
9
- Yjc5YTc2YzYyMzczN2FjNDNhNTIyNWNiNGZiMjI1YzhmMGU1OGNkY2ZhNjMz
10
- ZjYxZGRmZTkwMWNjYjdlNjlhYjIwMjk1Nzk4YTY5MDg1NDBhM2JlMThjMDBl
11
- NzIzZjI5MzU1YjhhOGQ5ODE4NzExYjFmMTlmOWM4MThmYTk4NjY=
9
+ YjJjMmNmNDkzYjkwM2VmYWFkOTVlOTY0ZWRmMTVlMjc0MDE0M2JmZmIwM2Mx
10
+ Y2U5MzJiYzExNTQyNTE0MWJhOWMxY2NhMGU3MWYwM2Q5ZjhhMjM4NjU1Nzdh
11
+ MmViZDk1OTI4MTVjMmY3YmE4MTBjYjEzOThmOWU1MTk0MGFlMTQ=
12
12
  data.tar.gz: !binary |-
13
- NzNhNjI1NDVhOWIwMzZjODI2YzZmNjU3ZDQ0YzgzZDFjYmVkODMyOGRkOWEx
14
- MDI4Yzc1NzFkODRmZWZhMDQxZmJiZjIyOTk1OTRiY2M3MTZjNDBjYmZhZmFk
15
- YTk0OTcxNzFmZjIzN2JjN2E4ZjMxMGUwNzQ5MjhjZGRmN2MzNDc=
13
+ OGFjOTExYzIxYWJlYjNkNDc0MDZkMGJjZWY2N2Q4ZGI1MGYzZWYzZTA2Mzgy
14
+ MGRmNjhiODMxNWJjNWFhMDYxNTg1MTcwNTE4MjFjMzAyMWRjYWUyY2FjMGYy
15
+ MDRlMWZjNjg3YjlkNDE0YWE3MjQzZDQwMjU2YTU4OGUxMjk2MzY=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- google_places (0.17.0)
4
+ google_places (0.18.0)
5
5
  httparty
6
6
 
7
7
  GEM
data/LICENSE.txt ADDED
@@ -0,0 +1,20 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2011 - 2013, Marcel de Graaf
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
6
+ this software and associated documentation files (the "Software"), to deal in
7
+ the Software without restriction, including without limitation the rights to
8
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9
+ the Software, and to permit persons to whom the Software is furnished to do so,
10
+ subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19
+ IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc CHANGED
@@ -92,6 +92,20 @@ Then retrieve the spot:
92
92
 
93
93
  @client.spot('CmRYAAA...upoTH3g')
94
94
 
95
+ === Retrieving a single photo's url
96
+
97
+ First register a new Client:
98
+
99
+ @client = GooglePlaces::Client.new(API_KEY)
100
+
101
+ Then retrieve the spot:
102
+
103
+ @spot = @client.spot('CmRYAAA...upoTH3g')
104
+
105
+ Then request one of the photos url with a max width:
106
+
107
+ url = @spot.photos[0].fetch_url(800)
108
+
95
109
 
96
110
  == Development
97
111
 
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "google_places"
6
- s.version = '0.18.0'
6
+ s.version = '0.19.0'
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Marcel de Graaf"]
9
9
  s.email = ["mail@marceldegraaf.net"]
data/lib/google_places.rb CHANGED
@@ -1,7 +1,18 @@
1
1
  require 'rubygems'
2
2
  require 'httparty'
3
3
 
4
-
5
- %w(client location request spot error).each do |file|
4
+ %w(client location request spot error photo).each do |file|
6
5
  require File.join(File.dirname(__FILE__), 'google_places', file)
7
6
  end
7
+
8
+ module GooglePlaces
9
+ class << self
10
+
11
+ attr_accessor :api_key
12
+
13
+ def configuration
14
+ yield self
15
+ end
16
+
17
+ end
18
+ end
@@ -43,8 +43,9 @@ module GooglePlaces
43
43
  #
44
44
  # @see http://spreadsheets.google.com/pub?key=p9pdwsai2hDMsLkXsoM05KQ&gid=1 List of supported languages
45
45
  # @see https://developers.google.com/maps/documentation/places/supported_types List of supported types
46
- def initialize(api_key, sensor = false, options = {})
47
- @api_key = api_key
46
+
47
+ def initialize(api_key = @api_key, sensor = false, options = {})
48
+ api_key ? @api_key = api_key : @api_key = GooglePlaces.api_key
48
49
  @sensor = sensor
49
50
  @options = options
50
51
  end
@@ -0,0 +1,44 @@
1
+ module GooglePlaces
2
+ class Photo
3
+ attr_accessor :width, :height, :photo_reference, :html_attributions
4
+
5
+ def initialize(width, height, photo_reference, html_attributions, api_key, sensor)
6
+ @width = width
7
+ @height = height
8
+ @photo_reference = photo_reference
9
+ @html_attributions = html_attributions
10
+ @api_key = api_key
11
+ @sensor = sensor
12
+ end
13
+
14
+ # Search for a Photo's url with its reference key
15
+ #
16
+ # @return [URL]
17
+ # @param [String] api_key the provided api key
18
+ # @param [Boolean] sensor
19
+ # Indicates whether or not the Place request came from a device using a location sensor (e.g. a GPS)
20
+ # to determine the location sent in this request.
21
+ # <b>Note that this is a mandatory parameter</b>
22
+ # @param [Hash] options
23
+ # @option options [Hash] :retry_options ({})
24
+ # A Hash containing parameters for search retries
25
+ # @option options [Object] :retry_options[:status] ([])
26
+ # @option options [Integer] :retry_options[:max] (0) the maximum retries
27
+ # @option options [Integer] :retry_options[:delay] (5) the delay between each retry in seconds
28
+ def fetch_url(maxwidth, options = {})
29
+ language = options.delete(:language)
30
+ retry_options = options.delete(:retry_options) || {}
31
+
32
+ unless @fetched_url
33
+ @fetched_url = Request.photo_url(
34
+ :maxwidth => maxwidth,
35
+ :photoreference => @photo_reference,
36
+ :sensor => @sensor,
37
+ :key => @api_key,
38
+ :retry_options => retry_options
39
+ )
40
+ end
41
+ @fetched_url
42
+ end
43
+ end
44
+ end
@@ -10,6 +10,7 @@ module GooglePlaces
10
10
 
11
11
  NEARBY_SEARCH_URL = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json'
12
12
  DETAILS_URL = 'https://maps.googleapis.com/maps/api/place/details/json'
13
+ PHOTO_URL = 'https://maps.googleapis.com/maps/api/place/photo'
13
14
  TEXT_SEARCH_URL = 'https://maps.googleapis.com/maps/api/place/textsearch/json'
14
15
  PAGETOKEN_URL = 'https://maps.googleapis.com/maps/api/place/search/json'
15
16
 
@@ -142,6 +143,33 @@ module GooglePlaces
142
143
  request.parsed_response
143
144
  end
144
145
 
146
+ # Search for a Photo's URL with a reference key
147
+ #
148
+ # @return [URL]
149
+ # @param [Hash] options
150
+ # @option options [String] :key
151
+ # the provided api key.
152
+ # <b>Note that this is a mandatory parameter</b>
153
+ # @option options [Integer] :maxwidth
154
+ # The maximum width of the photo url to be returned
155
+ # <b>Note that this is a mandatory parameter</b>
156
+ # @option options [String] :photoreference
157
+ # The reference of a already retrieved Photo
158
+ # <b>Note that this is a mandatory parameter</b>
159
+ # @option options [Boolean] :sensor
160
+ # Indicates whether or not the Place request came from a device using a location sensor (e.g. a GPS) to determine the location sent in this request.
161
+ # <b>Note that this is a mandatory parameter</b>
162
+ #
163
+ # @option options [Hash] :retry_options ({})
164
+ # A Hash containing parameters for search retries
165
+ # @option options [Object] :retry_options[:status] ([])
166
+ # @option options [Integer] :retry_options[:max] (0) the maximum retries
167
+ # @option options [Integer] :retry_options[:delay] (5) the delay between each retry in seconds
168
+ def self.photo_url(options = {})
169
+ request = new(PHOTO_URL, options, false)
170
+ request.parsed_response
171
+ end
172
+
145
173
  # Create a new Request for a given uri and the provided params
146
174
  #
147
175
  # @return [Request]
@@ -183,7 +211,7 @@ module GooglePlaces
183
211
  #
184
212
  # @see http://spreadsheets.google.com/pub?key=p9pdwsai2hDMsLkXsoM05KQ&gid=1 List of supported languages
185
213
  # @see https://developers.google.com/maps/documentation/places/supported_types List of supported types
186
- def initialize(url, options)
214
+ def initialize(url, options, follow_redirects = true)
187
215
  retry_options = options.delete(:retry_options) || {}
188
216
 
189
217
  retry_options[:status] ||= []
@@ -191,8 +219,8 @@ module GooglePlaces
191
219
  retry_options[:delay] ||= 5
192
220
 
193
221
  retry_options[:status] = [retry_options[:status]] unless retry_options[:status].is_a?(Array)
222
+ @response = self.class.get(url, :query => options, :follow_redirects => follow_redirects)
194
223
 
195
- @response = self.class.get(url, :query => options)
196
224
  # puts "@response.request.last_uri.to_s"
197
225
  # puts @response.request.last_uri.to_s
198
226
 
@@ -202,7 +230,7 @@ module GooglePlaces
202
230
  for i in (1..retry_options[:max])
203
231
  sleep(retry_options[:delay])
204
232
 
205
- @response = self.class.get(url, :query => options)
233
+ @response = self.class.get(url, :query => options, :follow_redirects => follow_redirects)
206
234
 
207
235
  break unless retry_options[:status].include?(@response.parsed_response['status'])
208
236
  end
@@ -224,7 +252,7 @@ module GooglePlaces
224
252
  end
225
253
 
226
254
  def execute
227
- @response = self.class.get(url, :query => options)
255
+ @response = self.class.get(url, :query => options, :follow_redirects => follow_redirects)
228
256
  end
229
257
 
230
258
  # Parse errors from the server respons, if any
@@ -235,6 +263,7 @@ module GooglePlaces
235
263
  # @raise [NotFoundError] when server response object includes 'NOT_FOUND'
236
264
  # @return [String] the response from the server as JSON
237
265
  def parsed_response
266
+ return @response.headers["location"] if @response.code >= 300 and @response.code < 400
238
267
  case @response.parsed_response['status']
239
268
  when 'OK', 'ZERO_RESULTS'
240
269
  @response.parsed_response
@@ -2,7 +2,7 @@ require 'google_places/review'
2
2
 
3
3
  module GooglePlaces
4
4
  class Spot
5
- attr_accessor :lat, :lng, :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
5
+ attr_accessor :lat, :lng, :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
6
6
 
7
7
  # Search for Spots at the provided location
8
8
  #
@@ -119,7 +119,7 @@ module GooglePlaces
119
119
  :retry_options => retry_options
120
120
  )
121
121
 
122
- self.new(response['result'])
122
+ self.new(response['result'], api_key, sensor)
123
123
  end
124
124
 
125
125
  # Search for Spots with a pagetoken
@@ -239,7 +239,7 @@ module GooglePlaces
239
239
  # Some places returned by Google do not have a 'types' property. If the user specified 'types', then
240
240
  # this is a non-issue because those places will not be returned. However, if the user did not specify
241
241
  # 'types', then we do not want to filter out places with a missing 'types' property from the results set.
242
- results << self.new(result) if result['types'].nil? || (result['types'] & exclude) == []
242
+ results << self.new(result, options[:key], options[:sensor]) if result['types'].nil? || (result['types'] & exclude) == []
243
243
  end
244
244
 
245
245
  results
@@ -278,7 +278,7 @@ module GooglePlaces
278
278
 
279
279
  # @param [JSON] json_result_object a JSON object to create a Spot from
280
280
  # @return [Spot] a newly created spot
281
- def initialize(json_result_object)
281
+ def initialize(json_result_object, api_key, sensor)
282
282
  @reference = json_result_object['reference']
283
283
  @vicinity = json_result_object['vicinity']
284
284
  @lat = json_result_object['geometry']['location']['lat']
@@ -307,9 +307,11 @@ module GooglePlaces
307
307
  @zagat_selected = json_result_object['zagat_selected']
308
308
  @aspects = aspects_component(json_result_object['aspects'])
309
309
  @review_summary = json_result_object['review_summary']
310
- @photos = photos_component(json_result_object['photos'])
310
+ @photos = photos_component(json_result_object['photos'], api_key, sensor)
311
311
  @reviews = reviews_component(json_result_object['reviews'])
312
312
  @nextpagetoken = json_result_object['nextpagetoken']
313
+ @events = events_component(json_result_object['events'])
314
+ @utc_offset = json_result_object['utc_offset']
313
315
  end
314
316
 
315
317
  def [] (key)
@@ -346,8 +348,24 @@ module GooglePlaces
346
348
  json_aspects.to_a.map{ |r| { :type => r['type'], :rating => r['rating'] } }
347
349
  end
348
350
 
349
- def photos_component(json_photos)
350
- json_photos.to_a.map{ |r| { :width => r['width'], :height => r['height'], :width => r['width'], :photo_reference => r['photo_reference'], :html_attributions => r['html_attributions'] } }
351
+ def photos_component(json_photos, api_key, sensor)
352
+ if json_photos
353
+ json_photos.map{ |p|
354
+ Photo.new(
355
+ p['width'],
356
+ p['height'],
357
+ p['photo_reference'],
358
+ p['html_attributions'],
359
+ api_key,
360
+ sensor
361
+ )
362
+ }
363
+ else []
364
+ end
365
+ end
366
+
367
+ def events_component(json_events)
368
+ json_events.to_a.map{ |r| {:event_id => r['event_id'], :summary => r['summary'], :url => r['url'], :start_time => r['start_time']} }
351
369
  end
352
370
  end
353
371
  end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ describe GooglePlaces do
4
+ it "should be able to initialize client without any params" do
5
+ client = GooglePlaces::Client.new
6
+ client.api_key.should == nil
7
+ end
8
+
9
+ shared_examples "config api_key" do
10
+ it "should be able to config api_key" do
11
+ GooglePlaces.configuration do |config|
12
+ config.api_key = '456'
13
+ end
14
+ client = GooglePlaces::Client.new
15
+ client.api_key.should == '456'
16
+ end
17
+ end
18
+
19
+ include_examples "config api_key" do
20
+ it "should be able to config api_key and being overwrite" do
21
+ client = GooglePlaces::Client.new
22
+ client.api_key.should_not == nil
23
+ client = GooglePlaces::Client.new '123'
24
+ client.api_key.should == '123'
25
+ end
26
+ end
27
+ end
@@ -2,10 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe GooglePlaces::Client do
4
4
 
5
- it 'should not initialize without an api_key' do
6
- lambda { GooglePlaces::Client.new }.should raise_error
7
- end
8
-
9
5
  it 'should initialize with an api_key' do
10
6
  @client = GooglePlaces::Client.new(api_key)
11
7
  @client.api_key.should == api_key
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe GooglePlaces::Photo do
4
+
5
+ before :each do
6
+ @max_width = 400
7
+ @sensor = false
8
+ @photo_reference = "CnRtAAAACQQXR83Jc3Pffxt1Zx7QbCe6AfY2negSNzkk2IeSf0q5nxHgartLzkr1fltSlkEDSS-EZqswWAW2eQDbiOl12J-V4Rmn_JNko9e9gSnMwxHBdmScu_84NMSe-0RwB9BM6AEqE8sENXQ8cpWaiEsC_RIQLzIJxpRdoqSPrPtrjTrOhxoUWb8uwObkV4duXfKIiNB20gfnu88"
9
+ end
10
+
11
+ context 'Photo' do
12
+ use_vcr_cassette 'photo'
13
+ before :each do
14
+ @photo = GooglePlaces::Photo.new(400, 400, @photo_reference, [], api_key, @sensor)
15
+ end
16
+ it 'should be a Photo' do
17
+ @photo.class.should == GooglePlaces::Photo
18
+ end
19
+ %w(width height photo_reference html_attributions).each do |attribute|
20
+ it "should have the attribute: #{attribute}" do
21
+ @photo.respond_to?(attribute).should == true
22
+ end
23
+ end
24
+ it 'should return a url when fetched' do
25
+ url = @photo.fetch_url(@max_width)
26
+ url.should_not be_empty
27
+ end
28
+ end
29
+ end
@@ -190,7 +190,7 @@ describe GooglePlaces::Spot do
190
190
  it 'should be a Spot' do
191
191
  @spot.class.should == GooglePlaces::Spot
192
192
  end
193
- %w(reference vicinity lat lng 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).each do |attribute|
193
+ %w(reference vicinity lat lng 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).each do |attribute|
194
194
  it "should have the attribute: #{attribute}" do
195
195
  @spot.respond_to?(attribute).should == true
196
196
  end
data/spec/spec_helper.rb CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'bundler/setup'
3
3
  require 'vcr_setup'
4
4
  require 'api_key'
5
- require 'google_places'
5
+ require File.dirname(__FILE__) + "/../lib/" + 'google_places'
6
6
 
7
7
  def api_key
8
8
  RSPEC_API_KEY
@@ -0,0 +1,46 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://maps.googleapis.com/maps/api/place/photo?maxwidth=400&photoreference=CnRtAAAACQQXR83Jc3Pffxt1Zx7QbCe6AfY2negSNzkk2IeSf0q5nxHgartLzkr1fltSlkEDSS-EZqswWAW2eQDbiOl12J-V4Rmn_JNko9e9gSnMwxHBdmScu_84NMSe-0RwB9BM6AEqE8sENXQ8cpWaiEsC_RIQLzIJxpRdoqSPrPtrjTrOhxoUWb8uwObkV4duXfKIiNB20gfnu88&sensor=false&key=AIzaSyATGBjcfrRXQtNEMMyt8Fw7tSGEY8PQwv0
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 302
13
+ message: Found
14
+ headers:
15
+ date:
16
+ - Fri, 18 Oct 2013 10:27:29 GMT
17
+ pragma:
18
+ - no-cache
19
+ expires:
20
+ - Fri, 01 Jan 1990 00:00:00 GMT
21
+ cache-control:
22
+ - no-cache, must-revalidate
23
+ location:
24
+ - https://lh4.googleusercontent.com/-1wzlVdxiW14/USSFZnhNqxI/AAAAAAAABGw/YpdANqaoGh4/s1600-w400/Google%2BSydney
25
+ content-type:
26
+ - text/html; charset=UTF-8
27
+ server:
28
+ - mafe
29
+ content-length:
30
+ - '306'
31
+ x-xss-protection:
32
+ - 1; mode=block
33
+ x-frame-options:
34
+ - SAMEORIGIN
35
+ alternate-protocol:
36
+ - 443:quic
37
+ connection:
38
+ - close
39
+ body:
40
+ encoding: US-ASCII
41
+ string: ! "<HTML><HEAD><meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\">\n<TITLE>302
42
+ Moved</TITLE></HEAD><BODY>\n<H1>302 Moved</H1>\nThe document has moved\n<A
43
+ HREF=\"https://lh4.googleusercontent.com/-1wzlVdxiW14/USSFZnhNqxI/AAAAAAAABGw/YpdANqaoGh4/s1600-w400/Google%2BSydney\">here</A>.\r\n</BODY></HTML>\r\n"
44
+ http_version: '1.1'
45
+ recorded_at: Fri, 18 Oct 2013 10:27:29 GMT
46
+ recorded_with: VCR 2.2.5
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_places
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.0
4
+ version: 0.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcel de Graaf
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-19 00:00:00.000000000 Z
11
+ date: 2013-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -78,6 +78,7 @@ files:
78
78
  - .travis.yml
79
79
  - Gemfile
80
80
  - Gemfile.lock
81
+ - LICENSE.txt
81
82
  - README.rdoc
82
83
  - Rakefile
83
84
  - google_places.gemspec
@@ -85,13 +86,16 @@ files:
85
86
  - lib/google_places/client.rb
86
87
  - lib/google_places/error.rb
87
88
  - lib/google_places/location.rb
89
+ - lib/google_places/photo.rb
88
90
  - lib/google_places/request.rb
89
91
  - lib/google_places/review.rb
90
92
  - lib/google_places/spot.rb
91
93
  - spec/api_key.sample.rb
92
94
  - spec/api_key.travis.rb
95
+ - spec/google_places.rb
93
96
  - spec/google_places/client_spec.rb
94
97
  - spec/google_places/location_spec.rb
98
+ - spec/google_places/photo_spec.rb
95
99
  - spec/google_places/request_spec.rb
96
100
  - spec/google_places/spot_spec.rb
97
101
  - spec/spec_helper.rb
@@ -102,6 +106,7 @@ files:
102
106
  - spec/vcr_cassettes/list_spots_with_single_type.yml
103
107
  - spec/vcr_cassettes/list_spots_with_types_and_exclusion.yml
104
108
  - spec/vcr_cassettes/multiple_page_request.yml
109
+ - spec/vcr_cassettes/photo.yml
105
110
  - spec/vcr_cassettes/premium_list_spots_with_data.yml
106
111
  - spec/vcr_cassettes/single_spot.yml
107
112
  - spec/vcr_setup.rb
@@ -125,15 +130,17 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
130
  version: '0'
126
131
  requirements: []
127
132
  rubyforge_project:
128
- rubygems_version: 2.0.5
133
+ rubygems_version: 2.1.3
129
134
  signing_key:
130
135
  specification_version: 4
131
136
  summary: A Ruby wrapper around the Google Places API.
132
137
  test_files:
133
138
  - spec/api_key.sample.rb
134
139
  - spec/api_key.travis.rb
140
+ - spec/google_places.rb
135
141
  - spec/google_places/client_spec.rb
136
142
  - spec/google_places/location_spec.rb
143
+ - spec/google_places/photo_spec.rb
137
144
  - spec/google_places/request_spec.rb
138
145
  - spec/google_places/spot_spec.rb
139
146
  - spec/spec_helper.rb
@@ -144,6 +151,7 @@ test_files:
144
151
  - spec/vcr_cassettes/list_spots_with_single_type.yml
145
152
  - spec/vcr_cassettes/list_spots_with_types_and_exclusion.yml
146
153
  - spec/vcr_cassettes/multiple_page_request.yml
154
+ - spec/vcr_cassettes/photo.yml
147
155
  - spec/vcr_cassettes/premium_list_spots_with_data.yml
148
156
  - spec/vcr_cassettes/single_spot.yml
149
157
  - spec/vcr_setup.rb