lieu 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CONTRIBUTING.md +34 -0
- data/LICENSE +20 -0
- data/README.md +112 -0
- data/Rakefile +42 -0
- data/lib/lieu/client/actions.rb +105 -0
- data/lib/lieu/client/autocomplete.rb +21 -0
- data/lib/lieu/client/details.rb +21 -0
- data/lib/lieu/client/photos.rb +23 -0
- data/lib/lieu/client/query_autocomplete.rb +21 -0
- data/lib/lieu/client/search.rb +79 -0
- data/lib/lieu/client.rb +36 -0
- data/lib/lieu/configuration.rb +45 -0
- data/lib/lieu/connection.rb +28 -0
- data/lib/lieu/error.rb +58 -0
- data/lib/lieu/request.rb +53 -0
- data/lib/lieu/response/raise_error.rb +18 -0
- data/lib/lieu/version.rb +5 -0
- data/lib/lieu.rb +25 -0
- data/lieu.gemspec +26 -0
- data/spec/cassettes/Lieu_Client_Actions/_event_details/returns_an_event_details.yml +54 -0
- data/spec/cassettes/Lieu_Client_Autocomplete/_autocomplete/returns_an_array_of_places.yml +203 -0
- data/spec/cassettes/Lieu_Client_Details/_details/returns_a_place_details.yml +220 -0
- data/spec/cassettes/Lieu_Client_Photos/_photo/returns_a_photo_image.yml +111 -0
- data/spec/cassettes/Lieu_Client_QueryAutocomplete/_query_autocomplete/returns_an_array_of_places.yml +203 -0
- data/spec/cassettes/Lieu_Client_Search/_nearby_search/returns_an_array_of_places.yml +517 -0
- data/spec/cassettes/Lieu_Client_Search/_radarsearch/returns_an_array_of_places.yml +1683 -0
- data/spec/cassettes/Lieu_Client_Search/_textsearch/returns_an_array_of_places.yml +560 -0
- data/spec/cassettes/Lieu_Request/given_a_GET_request/with_options/sets_options_as_url_parameters.yml +63 -0
- data/spec/cassettes/Lieu_Request/given_a_POST_request/with_options/sets_options_as_body_parameters.yml +63 -0
- data/spec/lib/lieu/client/actions_spec.rb +178 -0
- data/spec/lib/lieu/client/autocomplete_spec.rb +11 -0
- data/spec/lib/lieu/client/details_spec.rb +11 -0
- data/spec/lib/lieu/client/photo_spec.rb +17 -0
- data/spec/lib/lieu/client/query_autocomplete_spec.rb +11 -0
- data/spec/lib/lieu/client/search_spec.rb +39 -0
- data/spec/lib/lieu/client_spec.rb +70 -0
- data/spec/lib/lieu/request_spec.rb +35 -0
- data/spec/lib/lieu_spec.rb +32 -0
- data/spec/spec_helper.rb +65 -0
- data/spec/support/shared_examples/error.rb +33 -0
- metadata +120 -0
data/lib/lieu/request.rb
ADDED
@@ -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
|
data/lib/lieu/version.rb
ADDED
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'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 "Best place to work".",
|
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
|