foursquare2 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.1.0
data/foursquare2.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{foursquare2}
8
- s.version = "1.0.0"
8
+ s.version = "1.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Matt Mueller", "Marco Moura"]
12
- s.date = %q{2011-05-16}
12
+ s.date = %q{2011-05-25}
13
13
  s.description = %q{Gives access to all endpoints in version 2 of foursquare's API with syntax that will be familiar to those who used the original foursquare gem by Jeremy Welch.}
14
14
  s.email = ["muellermr@gmail.com", "email@marcomoura.com"]
15
15
  s.extra_rdoc_files = [
@@ -36,6 +36,7 @@ Gem::Specification.new do |s|
36
36
  "lib/foursquare2/venues.rb",
37
37
  "test/config.rb",
38
38
  "test/fixtures/checkin.json",
39
+ "test/fixtures/explore_venues.json",
39
40
  "test/fixtures/friend_checkins.json",
40
41
  "test/fixtures/no_venues_by_tip.json",
41
42
  "test/fixtures/photo.json",
@@ -117,5 +117,25 @@ module Foursquare2
117
117
  end
118
118
  return_error_or_body(response, response.body.response)
119
119
  end
120
+
121
+ # Explore venues
122
+ #
123
+ # @param [Hash] options
124
+ # @option options String :ll - Latitude and longitude in format LAT,LON
125
+ # @option options Integer :llAcc - Accuracy of the lat/lon in meters.
126
+ # @option options Integer :alt - Altitude in meters
127
+ # @option options Integer :altAcc - Accuracy of the altitude in meters
128
+ # @option options Integer :radius - Radius to search within, in meters
129
+ # @option options String :section - One of food, drinks, coffee, shops, or arts. Choosing one of these limits results to venues with categories matching these terms.
130
+ # @option options String :query - Query to match venues on.
131
+ # @option options Integer :limit - The limit of results to return.
132
+ # @option options String :basis - If present and set to friends or me, limits results to only places where friends have visited or user has visited, respectively.
133
+
134
+ def explore_venues(options={})
135
+ response = connection.get do |req|
136
+ req.url "venues/explore", options
137
+ end
138
+ return_error_or_body(response, response.body.response)
139
+ end
120
140
  end
121
141
  end
@@ -0,0 +1,284 @@
1
+ {
2
+ "meta": {
3
+ "code": 200
4
+ },
5
+ "response": {
6
+ "keywords": {
7
+ "count": 30,
8
+ "items": [
9
+ {
10
+ "displayName": "Food Truck",
11
+ "keyword": "Food Truck"
12
+ },
13
+ {
14
+ "displayName": "Street Food",
15
+ "keyword": "Street Food"
16
+ },
17
+ {
18
+ "displayName": "American",
19
+ "keyword": "American"
20
+ },
21
+ {
22
+ "displayName": "Pizza",
23
+ "keyword": "Pizza"
24
+ },
25
+ {
26
+ "displayName": "Ice Cream",
27
+ "keyword": "Ice Cream"
28
+ },
29
+ {
30
+ "displayName": "Deli",
31
+ "keyword": "Deli"
32
+ },
33
+ {
34
+ "displayName": "Bodega",
35
+ "keyword": "Bodega"
36
+ },
37
+ {
38
+ "displayName": "Italian",
39
+ "keyword": "Italian"
40
+ },
41
+ {
42
+ "displayName": "Seafood",
43
+ "keyword": "Seafood"
44
+ },
45
+ {
46
+ "displayName": "Hot Dogs",
47
+ "keyword": "Hot Dogs"
48
+ },
49
+ {
50
+ "displayName": "Sandwiches",
51
+ "keyword": "Sandwiches"
52
+ },
53
+ {
54
+ "displayName": "Diner",
55
+ "keyword": "Diner"
56
+ },
57
+ {
58
+ "displayName": "Burgers",
59
+ "keyword": "Burgers"
60
+ },
61
+ {
62
+ "displayName": "Falafel",
63
+ "keyword": "Falafel"
64
+ },
65
+ {
66
+ "displayName": "New American",
67
+ "keyword": "New American"
68
+ },
69
+ {
70
+ "displayName": "Other - Food",
71
+ "keyword": "Other - Food"
72
+ },
73
+ {
74
+ "displayName": "Mexican",
75
+ "keyword": "Mexican"
76
+ },
77
+ {
78
+ "displayName": "Japanese",
79
+ "keyword": "Japanese"
80
+ },
81
+ {
82
+ "displayName": "Bakery",
83
+ "keyword": "Bakery"
84
+ },
85
+ {
86
+ "displayName": "Chinese",
87
+ "keyword": "Chinese"
88
+ },
89
+ {
90
+ "displayName": "Vegetarian",
91
+ "keyword": "Vegetarian"
92
+ },
93
+ {
94
+ "displayName": "Vegan",
95
+ "keyword": "Vegan"
96
+ },
97
+ {
98
+ "displayName": "Gastropub",
99
+ "keyword": "Gastropub"
100
+ },
101
+ {
102
+ "displayName": "Sushi",
103
+ "keyword": "Sushi"
104
+ },
105
+ {
106
+ "displayName": "Food Court",
107
+ "keyword": "Food Court"
108
+ },
109
+ {
110
+ "displayName": "African",
111
+ "keyword": "African"
112
+ },
113
+ {
114
+ "displayName": "Eastern European",
115
+ "keyword": "Eastern European"
116
+ },
117
+ {
118
+ "displayName": "Bagels",
119
+ "keyword": "Bagels"
120
+ },
121
+ {
122
+ "displayName": "Cuban",
123
+ "keyword": "Cuban"
124
+ },
125
+ {
126
+ "displayName": "Australian",
127
+ "keyword": "Australian"
128
+ }
129
+ ]
130
+ },
131
+ "warning": {
132
+ "text": "There aren't a lot of results near you. Try expanding the search area by tapping the settings button on the top left of the screen."
133
+ },
134
+ "groups": [
135
+ {
136
+ "type": "recommended",
137
+ "name": "Recommended Places",
138
+ "items": [
139
+ {
140
+ "reasons": {
141
+ "count": 1,
142
+ "items": [
143
+ {
144
+ "type": "general",
145
+ "message": "This place is popular on foursquare."
146
+ }
147
+ ]
148
+ },
149
+ "venue": {
150
+ "id": "3fd66200f964a520e9e81ee3",
151
+ "name": "Grimaldi's Pizzeria",
152
+ "contact": {
153
+ "phone": "7188584300"
154
+ },
155
+ "location": {
156
+ "address": "19 Old Fulton St",
157
+ "crossStreet": "btw Front & Water Sts",
158
+ "city": "Brooklyn",
159
+ "state": "NY",
160
+ "postalCode": "11201",
161
+ "country": "USA",
162
+ "lat": 40.7026434,
163
+ "lng": -73.9934553,
164
+ "distance": 625
165
+ },
166
+ "categories": [
167
+ {
168
+ "id": "4bf58dd8d48988d1ca941735",
169
+ "name": "Pizza Place",
170
+ "pluralName": "Pizza Places",
171
+ "icon": "https://foursquare.com/img/categories/food/pizza.png",
172
+ "parents": [
173
+ "Food"
174
+ ],
175
+ "primary": true
176
+ }
177
+ ],
178
+ "verified": false,
179
+ "stats": {
180
+ "checkinsCount": 5014,
181
+ "usersCount": 3875
182
+ },
183
+ "todos": {
184
+ "count": 0
185
+ },
186
+ "hereNow": {
187
+ "count": 2
188
+ }
189
+ },
190
+ "tips": [
191
+ {
192
+ "id": "4c62b64eedb29c74df3a2ca7",
193
+ "createdAt": 1281537614,
194
+ "text": "This famous Brooklyn eatery, a perennial atop the city's best pizza joints, has received eviction papers after falling behind on rent and city taxes.",
195
+ "url": "http://online.wsj.com/article/SB10001424052748703435104575421652613394906.html?mod=4sq",
196
+ "todo": {
197
+ "count": 104
198
+ },
199
+ "done": {
200
+ "count": 190
201
+ },
202
+ "user": {
203
+ "id": "989827",
204
+ "firstName": "The Wall Street Journal",
205
+ "photo": "https://playfoursquare.s3.amazonaws.com/userpix_thumbs/RNLQAGZVMSFTB1WG.jpg",
206
+ "gender": "male",
207
+ "homeCity": "New York, NY"
208
+ }
209
+ }
210
+ ]
211
+ },
212
+ {
213
+ "reasons": {
214
+ "count": 1,
215
+ "items": [
216
+ {
217
+ "type": "general",
218
+ "message": "This place is popular on foursquare."
219
+ }
220
+ ]
221
+ },
222
+ "venue": {
223
+ "id": "4a9c07d1f964a520ca3520e3",
224
+ "name": "Heights Falafel",
225
+ "contact": {},
226
+ "location": {
227
+ "address": "78 Henry St.",
228
+ "city": "Brooklyn",
229
+ "state": "NY",
230
+ "lat": 40.6985,
231
+ "lng": -73.9925,
232
+ "distance": 654
233
+ },
234
+ "categories": [
235
+ {
236
+ "id": "4bf58dd8d48988d10b941735",
237
+ "name": "Falafel Restaurant",
238
+ "pluralName": "Falafel Restaurants",
239
+ "icon": "https://foursquare.com/img/categories/food/default.png",
240
+ "parents": [
241
+ "Food"
242
+ ],
243
+ "primary": true
244
+ }
245
+ ],
246
+ "verified": false,
247
+ "stats": {
248
+ "checkinsCount": 281,
249
+ "usersCount": 143
250
+ },
251
+ "todos": {
252
+ "count": 0
253
+ },
254
+ "hereNow": {
255
+ "count": 0
256
+ }
257
+ },
258
+ "tips": [
259
+ {
260
+ "id": "4d457c972e326ea85aa4eea6",
261
+ "createdAt": 1296399511,
262
+ "text": "The nicest guys to ever make a falafel.",
263
+ "todo": {
264
+ "count": 0
265
+ },
266
+ "done": {
267
+ "count": 4
268
+ },
269
+ "user": {
270
+ "id": "5626664",
271
+ "firstName": "Andie",
272
+ "lastName": "O.",
273
+ "photo": "https://playfoursquare.s3.amazonaws.com/userpix_thumbs/5CHQX5YNEVO13SHY.jpg",
274
+ "gender": "female",
275
+ "homeCity": "Long Island, NY"
276
+ }
277
+ }
278
+ ]
279
+ }
280
+ ]
281
+ }
282
+ ]
283
+ }
284
+ }
data/test/test_venues.rb CHANGED
@@ -59,6 +59,13 @@ class TestVenues < Test::Unit::TestCase
59
59
 
60
60
  tips.items.count.should == 0
61
61
  end
62
+
63
+ should "allow venues to be explored" do
64
+ stub_get("https://api.foursquare.com/v2/venues/explore?section=food&ll=40.7%2C-74&oauth_token=yeehaw&limit=2", "explore_venues.json")
65
+ venues = @client.explore_venues(:ll => '40.7,-74', :section => 'food', :limit => '2')
66
+ venues.groups.first.items.count.should == 2
67
+ end
68
+
62
69
 
63
70
  end
64
71
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foursquare2
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
+ - 1
8
9
  - 0
9
- - 0
10
- version: 1.0.0
10
+ version: 1.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Matt Mueller
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-05-16 00:00:00 -05:00
19
+ date: 2011-05-25 00:00:00 -05:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -222,6 +222,7 @@ files:
222
222
  - lib/foursquare2/venues.rb
223
223
  - test/config.rb
224
224
  - test/fixtures/checkin.json
225
+ - test/fixtures/explore_venues.json
225
226
  - test/fixtures/friend_checkins.json
226
227
  - test/fixtures/no_venues_by_tip.json
227
228
  - test/fixtures/photo.json