lieu 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +7 -0
  2. data/CONTRIBUTING.md +34 -0
  3. data/LICENSE +20 -0
  4. data/README.md +112 -0
  5. data/Rakefile +42 -0
  6. data/lib/lieu/client/actions.rb +105 -0
  7. data/lib/lieu/client/autocomplete.rb +21 -0
  8. data/lib/lieu/client/details.rb +21 -0
  9. data/lib/lieu/client/photos.rb +23 -0
  10. data/lib/lieu/client/query_autocomplete.rb +21 -0
  11. data/lib/lieu/client/search.rb +79 -0
  12. data/lib/lieu/client.rb +36 -0
  13. data/lib/lieu/configuration.rb +45 -0
  14. data/lib/lieu/connection.rb +28 -0
  15. data/lib/lieu/error.rb +58 -0
  16. data/lib/lieu/request.rb +53 -0
  17. data/lib/lieu/response/raise_error.rb +18 -0
  18. data/lib/lieu/version.rb +5 -0
  19. data/lib/lieu.rb +25 -0
  20. data/lieu.gemspec +26 -0
  21. data/spec/cassettes/Lieu_Client_Actions/_event_details/returns_an_event_details.yml +54 -0
  22. data/spec/cassettes/Lieu_Client_Autocomplete/_autocomplete/returns_an_array_of_places.yml +203 -0
  23. data/spec/cassettes/Lieu_Client_Details/_details/returns_a_place_details.yml +220 -0
  24. data/spec/cassettes/Lieu_Client_Photos/_photo/returns_a_photo_image.yml +111 -0
  25. data/spec/cassettes/Lieu_Client_QueryAutocomplete/_query_autocomplete/returns_an_array_of_places.yml +203 -0
  26. data/spec/cassettes/Lieu_Client_Search/_nearby_search/returns_an_array_of_places.yml +517 -0
  27. data/spec/cassettes/Lieu_Client_Search/_radarsearch/returns_an_array_of_places.yml +1683 -0
  28. data/spec/cassettes/Lieu_Client_Search/_textsearch/returns_an_array_of_places.yml +560 -0
  29. data/spec/cassettes/Lieu_Request/given_a_GET_request/with_options/sets_options_as_url_parameters.yml +63 -0
  30. data/spec/cassettes/Lieu_Request/given_a_POST_request/with_options/sets_options_as_body_parameters.yml +63 -0
  31. data/spec/lib/lieu/client/actions_spec.rb +178 -0
  32. data/spec/lib/lieu/client/autocomplete_spec.rb +11 -0
  33. data/spec/lib/lieu/client/details_spec.rb +11 -0
  34. data/spec/lib/lieu/client/photo_spec.rb +17 -0
  35. data/spec/lib/lieu/client/query_autocomplete_spec.rb +11 -0
  36. data/spec/lib/lieu/client/search_spec.rb +39 -0
  37. data/spec/lib/lieu/client_spec.rb +70 -0
  38. data/spec/lib/lieu/request_spec.rb +35 -0
  39. data/spec/lib/lieu_spec.rb +32 -0
  40. data/spec/spec_helper.rb +65 -0
  41. data/spec/support/shared_examples/error.rb +33 -0
  42. metadata +120 -0
@@ -0,0 +1,53 @@
1
+ module Lieu
2
+ # Methods for HTTP requests
3
+ module Request
4
+ # Make a HTTP GET request.
5
+ #
6
+ # @param path [String] The path, relative to api_endpoint
7
+ # @param options [Hash] query params for request
8
+ # @return [Hashie::Mash]
9
+ def get(path, options={})
10
+ request(:get, path, options)
11
+ end
12
+
13
+ # Make a HTTP POST request.
14
+ #
15
+ # @param path [String] The path, relative to api_endpoint
16
+ # @param options [Hash] body params for request
17
+ # @return [Hashie::Mash]
18
+ def post(path, options={})
19
+ response = request(:post, path, options)
20
+
21
+ response.delete(:status) if response.respond_to?(:status)
22
+
23
+ response
24
+ end
25
+
26
+ private
27
+
28
+ def request(method, path, options)
29
+ path = "#{path}/json" unless options.delete(:json) == false
30
+
31
+ response = connection.send(method) do |request|
32
+ request.params['key'] = self.api_key
33
+ request.params['sensor'] = options.delete(:sensor) || self.sensor
34
+
35
+ case method
36
+ when :get
37
+ request.url(path, options)
38
+ when :post
39
+ request.path = path
40
+ request.body = MultiJson.dump(options) unless options.empty?
41
+ end
42
+ end
43
+
44
+ response.body
45
+ end
46
+
47
+ def boolean_from_response(method, path, options={})
48
+ response = request(method, path, options)
49
+
50
+ response.status == 'OK'
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,18 @@
1
+ require 'faraday'
2
+ require 'lieu/error'
3
+
4
+ module Lieu
5
+ # Faraday response middleware
6
+ module Response
7
+ # Raises a Lieu exception based on status response or HTTP status codes returned by the API
8
+ class RaiseError < Faraday::Response::Middleware
9
+ private
10
+
11
+ def on_complete(response)
12
+ if error = Lieu::Error.from_response(response)
13
+ raise error
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ module Lieu
2
+ # Current version
3
+ # @return [String]
4
+ VERSION = '1.0.0'.freeze
5
+ end
data/lib/lieu.rb ADDED
@@ -0,0 +1,25 @@
1
+ require 'lieu/configuration'
2
+ require 'lieu/client'
3
+
4
+ # Ruby wrapper for Google Places
5
+ module Lieu
6
+ extend Configuration
7
+
8
+ class << self
9
+ # Delegates to Lieu::Client#new
10
+ def new(options={})
11
+ Lieu::Client.new(options)
12
+ end
13
+
14
+ # @private
15
+ def method_missing(method, *args, &block)
16
+ return super unless new.respond_to?(method)
17
+ new.send(method, *args, &block)
18
+ end
19
+
20
+ # @private
21
+ def respond_to?(method, include_private=false)
22
+ new.respond_to?(method, include_private) || super(method, include_private)
23
+ end
24
+ end
25
+ end
data/lieu.gemspec ADDED
@@ -0,0 +1,26 @@
1
+ # encoding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'lieu/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = 'lieu'
8
+ gem.version = Lieu::VERSION.dup
9
+ gem.license = 'MIT'
10
+
11
+ gem.summary = %q{Google Places API Ruby wrapper}
12
+ gem.description = %q{Simple Ruby wrapper for the Google places API.}
13
+ gem.homepage = 'https://github.com/sush/lieu'
14
+
15
+ gem.authors = ['Aylic Petit']
16
+ gem.email = ['sush@users.noreply.github.com']
17
+
18
+ gem.required_ruby_version = '>= 1.9.2'
19
+
20
+ gem.files = %w[LICENSE README.md CONTRIBUTING.md Rakefile lieu.gemspec]
21
+ gem.files += Dir.glob('{spec,lib}/**/*.rb')
22
+ gem.require_paths = ['lib']
23
+ gem.test_files = Dir.glob('spec/**/*')
24
+
25
+ gem.add_development_dependency 'bundler', '~> 1.0'
26
+ end
@@ -0,0 +1,54 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://maps.googleapis.com/maps/api/place/event/details/json?event_id=9lJ_jK1GfhX&key=<API_KEY>&reference=CnRsAAAAN3fYg_9lNkVp8iMRtJH1DBqiSKyspK_Mr-qkChsBTEstw7-me8ChcVvLAbG4OQMVbm9AF_m4Z2d5QTtLqh1DDzGufk6KIfBy4PwJU6xrhuEFl6FmP1R2mq6a68TfDvaNoW9n9mZoLmq8n34MzpDE8hIQq9GAts0wAgDyDLn2CQMiMBoU8ASrZmLF0AkJL4ESExeF2pqj_Oo&sensor=false
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - '*/*'
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Content-Type:
22
+ - application/json; charset=UTF-8
23
+ Date:
24
+ - Thu, 26 Sep 2013 09:42:57 GMT
25
+ Expires:
26
+ - Thu, 26 Sep 2013 09:47:57 GMT
27
+ Cache-Control:
28
+ - public, max-age=300
29
+ Server:
30
+ - mafe
31
+ X-Xss-Protection:
32
+ - 1; mode=block
33
+ X-Frame-Options:
34
+ - SAMEORIGIN
35
+ Alternate-Protocol:
36
+ - 443:quic
37
+ Transfer-Encoding:
38
+ - chunked
39
+ body:
40
+ encoding: UTF-8
41
+ string: |
42
+ {
43
+ "result" : {
44
+ "duration" : 172800,
45
+ "event_id" : "9lJ_jK1GfhX",
46
+ "start_time" : 1293840000,
47
+ "summary" : "Rock n Roll Dreams: The band fully electric in my kitchen and drinking all my beer.",
48
+ "url" : "http://www.example.com/event_details/10476.html"
49
+ },
50
+ "status" : "OK"
51
+ }
52
+ http_version:
53
+ recorded_at: Thu, 26 Sep 2013 09:42:57 GMT
54
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,203 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Google%20Sydney&key=<API_KEY>&sensor=false
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - '*/*'
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Content-Type:
22
+ - application/json; charset=UTF-8
23
+ Date:
24
+ - Wed, 25 Sep 2013 13:22:27 GMT
25
+ Expires:
26
+ - Wed, 25 Sep 2013 13:27:27 GMT
27
+ Cache-Control:
28
+ - public, max-age=300
29
+ Vary:
30
+ - Accept-Language
31
+ Server:
32
+ - mafe
33
+ X-Xss-Protection:
34
+ - 1; mode=block
35
+ X-Frame-Options:
36
+ - SAMEORIGIN
37
+ Alternate-Protocol:
38
+ - 443:quic
39
+ Transfer-Encoding:
40
+ - chunked
41
+ body:
42
+ encoding: UTF-8
43
+ string: |
44
+ {
45
+ "predictions" : [
46
+ {
47
+ "description" : "Google Sydney, Pirrama Road, Sydney, New South Wales, Australia",
48
+ "id" : "4f89212bf76dde31f092cfc14d7506555d85b5c7",
49
+ "matched_substrings" : [
50
+ {
51
+ "length" : 6,
52
+ "offset" : 0
53
+ },
54
+ {
55
+ "length" : 6,
56
+ "offset" : 29
57
+ }
58
+ ],
59
+ "reference" : "ClROAAAAqMaLM46d15V4PLE_YSp1o0vTZmO7hkiSobhCcV_KANk3o4MqzxC41QHaTciEPuLdbv-CHx8g9xz1gunS-NLworOhO4oHKTwYTVRKFixQ5P0SEIdMyEn40mUnoCDm30XVMqsaFL75JcXqw9NRUxyizYSzMA1jx0Gf",
60
+ "terms" : [
61
+ {
62
+ "offset" : 0,
63
+ "value" : "Google Sydney"
64
+ },
65
+ {
66
+ "offset" : 15,
67
+ "value" : "Pirrama Road"
68
+ },
69
+ {
70
+ "offset" : 29,
71
+ "value" : "Sydney"
72
+ },
73
+ {
74
+ "offset" : 37,
75
+ "value" : "New South Wales"
76
+ },
77
+ {
78
+ "offset" : 54,
79
+ "value" : "Australia"
80
+ }
81
+ ],
82
+ "types" : [ "establishment" ]
83
+ },
84
+ {
85
+ "description" : "Get On Google, Macquarie Street, Sydney, New South Wales, Australia",
86
+ "id" : "42224ed8c9da910b16d7c028543134e033c3d987",
87
+ "matched_substrings" : [
88
+ {
89
+ "length" : 13,
90
+ "offset" : 0
91
+ },
92
+ {
93
+ "length" : 6,
94
+ "offset" : 33
95
+ }
96
+ ],
97
+ "reference" : "CmRRAAAAO-P4B9dxDX9AD7tsOU1js2yfEHcGOo2WlX4RVZpZAhFRN7-hGkV7lAWn_HuZYoc6Te9D-wiq2icZsHnOwt_cNEuZ7NJCEMtbdtxydrn9HAFrX0wjiDdFgTsU6GO2EvkXEhBr41DrSpYZtQA5Vz0RUcjuGhR3aXf4yRfzdMY3dQ-RBhGcxEA-Ng",
98
+ "terms" : [
99
+ {
100
+ "offset" : 0,
101
+ "value" : "Get On Google"
102
+ },
103
+ {
104
+ "offset" : 15,
105
+ "value" : "Macquarie Street"
106
+ },
107
+ {
108
+ "offset" : 33,
109
+ "value" : "Sydney"
110
+ },
111
+ {
112
+ "offset" : 41,
113
+ "value" : "New South Wales"
114
+ },
115
+ {
116
+ "offset" : 58,
117
+ "value" : "Australia"
118
+ }
119
+ ],
120
+ "types" : [ "establishment" ]
121
+ },
122
+ {
123
+ "description" : "Google Advertising, Macquarie Street, Sydney, New South Wales, Australia",
124
+ "id" : "5623d36f6db1e4bfe015033c13c0168f6429ce61",
125
+ "matched_substrings" : [
126
+ {
127
+ "length" : 6,
128
+ "offset" : 0
129
+ },
130
+ {
131
+ "length" : 6,
132
+ "offset" : 38
133
+ }
134
+ ],
135
+ "reference" : "CmRXAAAAhoRne94gd6P9v0JWldr7Sxsw2uBLNS1YTOtiF33hOr734HKBSuCGRklVOFg4HeQ9UbiPgVM9V1u-8FhrYbmtsLE8zJoHeXAe2Pb3UBTvhb_J8duZacbsASDeIHQfraUuEhB3P4366USEo7r5hEYhTBFBGhRk0gkVjuHtvmXUKtjcTVrMeAiqkQ",
136
+ "terms" : [
137
+ {
138
+ "offset" : 0,
139
+ "value" : "Google Advertising"
140
+ },
141
+ {
142
+ "offset" : 20,
143
+ "value" : "Macquarie Street"
144
+ },
145
+ {
146
+ "offset" : 38,
147
+ "value" : "Sydney"
148
+ },
149
+ {
150
+ "offset" : 46,
151
+ "value" : "New South Wales"
152
+ },
153
+ {
154
+ "offset" : 63,
155
+ "value" : "Australia"
156
+ }
157
+ ],
158
+ "types" : [ "establishment" ]
159
+ },
160
+ {
161
+ "description" : "Up On Google, Rickard Street, Sydney, New South Wales, Australia",
162
+ "id" : "897512576d7aad77cc1e60df218870a7eaa96a7b",
163
+ "matched_substrings" : [
164
+ {
165
+ "length" : 12,
166
+ "offset" : 0
167
+ },
168
+ {
169
+ "length" : 6,
170
+ "offset" : 30
171
+ }
172
+ ],
173
+ "reference" : "ClRPAAAABLRn4XJpmYUzPF1-iwC8v9unvfde7Gh0d0PM3jIKNNlW6l4DaeGZ3lJlJQUuOoadDe_w-7quMIBysSLPyQW6BiG54wFQQByTQd2HLIsucLsSEJh3YjTnUIfpaLmhF4iY43saFNKRXCDwxz4pcuRfU2old0byQvtt",
174
+ "terms" : [
175
+ {
176
+ "offset" : 0,
177
+ "value" : "Up On Google"
178
+ },
179
+ {
180
+ "offset" : 14,
181
+ "value" : "Rickard Street"
182
+ },
183
+ {
184
+ "offset" : 30,
185
+ "value" : "Sydney"
186
+ },
187
+ {
188
+ "offset" : 38,
189
+ "value" : "New South Wales"
190
+ },
191
+ {
192
+ "offset" : 55,
193
+ "value" : "Australia"
194
+ }
195
+ ],
196
+ "types" : [ "establishment" ]
197
+ }
198
+ ],
199
+ "status" : "OK"
200
+ }
201
+ http_version:
202
+ recorded_at: Wed, 25 Sep 2013 13:22:27 GMT
203
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,220 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://maps.googleapis.com/maps/api/place/details/json?key=<API_KEY>&reference=CmRYAAAAciqGsTRX1mXRvuXSH2ErwW-jCINE1aLiwP64MCWDN5vkXvXoQGPKldMfmdGyqWSpm7BEYCgDm-iv7Kc2PF7QA7brMAwBbAcqMr5i1f4PwTpaovIZjysCEZTry8Ez30wpEhCNCXpynextCld2EBsDkRKsGhSLayuRyFsex6JA6NPh9dyupoTH3g&sensor=false
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - '*/*'
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Content-Type:
22
+ - application/json; charset=UTF-8
23
+ Date:
24
+ - Wed, 25 Sep 2013 16:28:34 GMT
25
+ Expires:
26
+ - Wed, 25 Sep 2013 16:33:34 GMT
27
+ Cache-Control:
28
+ - public, max-age=300
29
+ Vary:
30
+ - Accept-Language
31
+ Server:
32
+ - mafe
33
+ X-Xss-Protection:
34
+ - 1; mode=block
35
+ X-Frame-Options:
36
+ - SAMEORIGIN
37
+ Alternate-Protocol:
38
+ - 443:quic
39
+ Transfer-Encoding:
40
+ - chunked
41
+ body:
42
+ encoding: UTF-8
43
+ string: |
44
+ {
45
+ "debug_info" : [],
46
+ "html_attributions" : [],
47
+ "result" : {
48
+ "address_components" : [
49
+ {
50
+ "long_name" : "48",
51
+ "short_name" : "48",
52
+ "types" : [ "street_number" ]
53
+ },
54
+ {
55
+ "long_name" : "Pirrama Road",
56
+ "short_name" : "Pirrama Road",
57
+ "types" : [ "route" ]
58
+ },
59
+ {
60
+ "long_name" : "Pyrmont",
61
+ "short_name" : "Pyrmont",
62
+ "types" : [ "locality", "political" ]
63
+ },
64
+ {
65
+ "long_name" : "NSW",
66
+ "short_name" : "NSW",
67
+ "types" : [ "administrative_area_level_1", "political" ]
68
+ },
69
+ {
70
+ "long_name" : "AU",
71
+ "short_name" : "AU",
72
+ "types" : [ "country", "political" ]
73
+ },
74
+ {
75
+ "long_name" : "2009",
76
+ "short_name" : "2009",
77
+ "types" : [ "postal_code" ]
78
+ }
79
+ ],
80
+ "formatted_address" : "5/48 Pirrama Road, Pyrmont NSW, Australia",
81
+ "formatted_phone_number" : "(02) 9374 4000",
82
+ "geometry" : {
83
+ "location" : {
84
+ "lat" : -33.866933,
85
+ "lng" : 151.195791
86
+ }
87
+ },
88
+ "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
89
+ "id" : "4f89212bf76dde31f092cfc14d7506555d85b5c7",
90
+ "international_phone_number" : "+61 2 9374 4000",
91
+ "name" : "Google Sydney",
92
+ "photos" : [
93
+ {
94
+ "height" : 486,
95
+ "html_attributions" : [
96
+ "\u003ca href=\"https://plus.google.com/105850346606847400426\"\u003eBrandon Grimshaw\u003c/a\u003e"
97
+ ],
98
+ "photo_reference" : "CnRtAAAA1rIq9w09t6CQfFcXIQ-G3yPY3_Shys6yWac8MSNdYKxL8yVazJZBVFAZnM4v1Hwd8Us5QOk0Tol-l36RGRkrRTtmCOqr6k6jQtm58cJmRcaBXzbTo39T4Tx0kp2KE19azn-ae_TD3j0gtNTSSLb5NxIQFYNrribJgpcrJb_HTKuPaRoU641pc6PZCHpZeXZ4DnDpDL6NOEQ",
99
+ "width" : 648
100
+ },
101
+ {
102
+ "height" : 480,
103
+ "html_attributions" : [
104
+ "\u003ca href=\"https://plus.google.com/111157746837259488919\"\u003eTim Lacey\u003c/a\u003e"
105
+ ],
106
+ "photo_reference" : "CnRtAAAAzN0Iv7CkhTJYRGWivcA9U3LChynRTFh-sEjID6tfgqm3gaGdAI0p3X-ROFsnyWAS75hOM8rdgzLGNNayz3tn1doTVCpXWvunsA2MC4wCCEEfYHIlOiAsXJwyg507yRhZ9jtGRB9XjmsQcOF6OjsjXBIQMb6b_WR4Y4U_6M9Lq-n5cRoUNZoijRykexZ-Z27XORdHiFf0SMw",
107
+ "width" : 640
108
+ },
109
+ {
110
+ "height" : 1536,
111
+ "html_attributions" : [],
112
+ "photo_reference" : "CoQBdQAAAP-TFlTZqpBlSUfeWLBWR8wan6O33I1Pj1lMPQ6RToZ3Or6PNO8UotqjQDw2TGM54ChZHP0PHUU2rhNUe89E1bXqvdbjSYSDrZeViXH6mv87-3uUTPR-H8pHUxefVeN-4PHEvm2aeEBx_f6Wv3RnrIFG2lyAT-t5G1rUHUpNOjWKEhCV9SiNJf6ugX_kz-ykbN3_GhRuySdTMrwJe6eIQXr-WSmP0AOoIg",
113
+ "width" : 2048
114
+ },
115
+ {
116
+ "height" : 1224,
117
+ "html_attributions" : [
118
+ "\u003ca href=\"https://plus.google.com/102793072679802771755\"\u003eKeith Denny\u003c/a\u003e"
119
+ ],
120
+ "photo_reference" : "CnRoAAAA7Vr7hpTZwCkMzmCdqG23VP3Ydel7K25zi9C6NRSgfDKlKgYcMGFTnKOiw5Zkb4oXFc53C2BOwxPQClS4nrHMYGrynXOKJGPvuw8aY6TB2qvWJhnxK_xt6tl0THnwdk4JCUORWQmLJ0yXVbDmHZZXYhIQhCwJKfe_hVYjumhcvRfWGhoUqG6uSFZs_62UT89WEVlD4snDtao",
121
+ "width" : 1632
122
+ },
123
+ {
124
+ "height" : 480,
125
+ "html_attributions" : [ "From a Google User" ],
126
+ "photo_reference" : "CnRqAAAA3HU4KMtWlB-mCckNQ1I1NJoNrU-QZLtwxnBB6TSsxTCT0S1mDr_lAyUCmTlt-CoLr2iVUhuxSXXl-Q__PsvooFiEOMPl2LUt_V7fpzedE2PJf1zWPeqbTftSa1xoPs-9bSJn_1ioFwuzjqMB4YTvyRIQQCXmexoBDXi5WlxxH-hRLhoUe3YUMvQlkNbBHUwNuarPIf7kTuM",
127
+ "width" : 640
128
+ },
129
+ {
130
+ "height" : 480,
131
+ "html_attributions" : [
132
+ "\u003ca href=\"https://plus.google.com/107431378819434358066\"\u003eDean Michael Berris\u003c/a\u003e"
133
+ ],
134
+ "photo_reference" : "CnRtAAAAbcq2bMYcjF-mdfy3RZAVKhOi20fAeTb3lTB2rhfMjwyhhmA_90VUZJUO-jH7mT3VJS8pNWLJZcMyju6G-UlXRBmGGpdvCecaEfSuOlTGH8tdXqP4TSe2Puj54wQGe1RkRBCAH2dCI61ESX4ZJeGAthIQRiwP_kJxo6v0hhgQhNhZPhoUrIEfQp36j93sD0tm_XQHE1RI2zs",
135
+ "width" : 640
136
+ }
137
+ ],
138
+ "rating" : 4.4,
139
+ "reference" : "CnRsAAAAN3fYg_9lNkVp8iMRtJH1DBqiSKyspK_Mr-qkChsBTEstw7-me8ChcVvLAbG4OQMVbm9AF_m4Z2d5QTtLqh1DDzGufk6KIfBy4PwJU6xrhuEFl6FmP1R2mq6a68TfDvaNoW9n9mZoLmq8n34MzpDE8hIQq9GAts0wAgDyDLn2CQMiMBoU8ASrZmLF0AkJL4ESExeF2pqj_Oo",
140
+ "reviews" : [
141
+ {
142
+ "aspects" : [
143
+ {
144
+ "rating" : 3,
145
+ "type" : "quality"
146
+ }
147
+ ],
148
+ "author_name" : "Cindy Huang",
149
+ "author_url" : "https://plus.google.com/107550491878142658504",
150
+ "text" : "There are few workplaces more desirable to work in than Google. The facilities are incredible, and reflect the company&#39;s dedication to innovation, inspiration and improvement. The interior design is fun, flexible and definitely the ideal platform for employers and employees alike to foster the great ideas of tomorrow. Should the opportunity arise, I would definitely recommend everyone to seize the chance to experience Google (and get a tour through those amazing and incredibly thoughtful micro kitchens).",
151
+ "time" : 1361360490
152
+ },
153
+ {
154
+ "aspects" : [
155
+ {
156
+ "rating" : 3,
157
+ "type" : "quality"
158
+ }
159
+ ],
160
+ "author_name" : "Albert Mai",
161
+ "author_url" : "https://plus.google.com/106558367962383756670",
162
+ "text" : "All Googlers are so nice and friendly. They will always answer your questions, open to questions and willing to help you with their best. The office locates at a very strategic place - in CBD and has wonderful view over the harbor. Really enjoy having lunch outside to enjoy the wind and fresh air for inspiration (but watch out for flying dishes because of strong wind). However, food is kinda lack of the variety comparing to other offices. The plus is food station is almost everywhere which feed you very well (be careful of gaining so much weight). There will usually be surprise when you work here: Ice Cream, Nexus 7, Chrome notebook, Nexus and many other swags. There are a lot of trees inside the building which I really like it - so fresh !",
163
+ "time" : 1358249804
164
+ },
165
+ {
166
+ "aspects" : [
167
+ {
168
+ "rating" : 3,
169
+ "type" : "quality"
170
+ }
171
+ ],
172
+ "author_name" : "David Webb",
173
+ "author_url" : "https://plus.google.com/115578224090485355580",
174
+ "text" : "Awesome company! Great culture and food. A fantastic office indeed. Definitely deserves the title &quot;Best place to work&quot;.",
175
+ "time" : 1358233693
176
+ },
177
+ {
178
+ "aspects" : [
179
+ {
180
+ "rating" : 3,
181
+ "type" : "quality"
182
+ }
183
+ ],
184
+ "author_name" : "Jared Winter",
185
+ "author_url" : "https://plus.google.com/103549082258031873774",
186
+ "text" : "A brilliant atmosphere and welcoming people a great place to visit or work. Definitely take a look at their unique reception with the tyre swing and fernery.",
187
+ "time" : 1361349311
188
+ },
189
+ {
190
+ "aspects" : [
191
+ {
192
+ "rating" : 0,
193
+ "type" : "quality"
194
+ }
195
+ ],
196
+ "author_name" : "Vanessa Wiseman",
197
+ "author_url" : "https://plus.google.com/118187699378922275112",
198
+ "text" : "Google advertising is EVIL! It is not a fair forum and Google wont help. They never help. Good luck speaking with a real human. Competitors can post any nasty unture statements they like to ruin your business. Google doesnt care. Google + Sux. I wish i had never heard of it. Woopdi they have given themselves great pay and a great office and free food. I hope you choke on it. Stop patting your self on the back and try listening to small business and actually doing some work instead of having meetings and discussing how good you think you all are. PS. Lets see if you keep this review, or delete it. BECAUSE ITS TRUE!!!!!!",
199
+ "time" : 1346283496
200
+ }
201
+ ],
202
+ "types" : [ "establishment" ],
203
+ "url" : "https://plus.google.com/111840715355681175070/about?hl=en-US",
204
+ "utc_offset" : 600,
205
+ "vicinity" : "5/48 Pirrama Road, Pyrmont",
206
+ "website" : "http://www.google.com/about/jobs/locations/sydney/",
207
+ "events" : [
208
+ {
209
+ "event_id" : "9lJ_jK1GfhX",
210
+ "start_time" : 1293865200,
211
+ "summary" : "<p>A visit from author John Doe, who will read from his latest book.</p>",
212
+ "url" : "http://www.example.com/john_doe_visit.html"
213
+ }
214
+ ]
215
+ },
216
+ "status" : "OK"
217
+ }
218
+ http_version:
219
+ recorded_at: Wed, 25 Sep 2013 16:28:34 GMT
220
+ recorded_with: VCR 2.5.0