foursquare2 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/Readme.md CHANGED
@@ -71,6 +71,7 @@ See [the documentation](http://rubydoc.info/gems/foursquare2/frames) or [foursqu
71
71
  client.add_checkin_comment
72
72
  client.delete_checkin_comment
73
73
  client.photo
74
+ client.add_photo
74
75
  client.settings
75
76
  client.setting
76
77
  client.update_setting
@@ -89,6 +90,7 @@ See [the documentation](http://rubydoc.info/gems/foursquare2/frames) or [foursqu
89
90
  client.user_checkins
90
91
  client.user_friends
91
92
  client.user_tips
93
+ client.user_mayorships
92
94
  client.user_todos
93
95
  client.user_venue_history
94
96
  client.user_friend_request
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.2.0
1
+ 1.3.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.2.0"
8
+ s.version = "1.3.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-10-20}
12
+ s.date = %q{2011-11-30}
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 = [
@@ -50,6 +50,7 @@ Gem::Specification.new do |s|
50
50
  "test/fixtures/special.json",
51
51
  "test/fixtures/tip.json",
52
52
  "test/fixtures/user.json",
53
+ "test/fixtures/user_mayorships.json",
53
54
  "test/fixtures/user_tips.json",
54
55
  "test/fixtures/user_tips_empty.json",
55
56
  "test/fixtures/venue.json",
@@ -43,9 +43,14 @@ module Foursquare2
43
43
  params[:client_secret] = @client_secret if @client_secret
44
44
  params[:oauth_token] = @oauth_token if @oauth_token
45
45
  @connection ||= Faraday::Connection.new(:url => api_url, :ssl => @ssl, :params => params, :headers => default_headers) do |builder|
46
- builder.adapter Faraday.default_adapter
46
+ builder.use Faraday::Request::Multipart
47
+ builder.use Faraday::Request::UrlEncoded
48
+
47
49
  builder.use Faraday::Response::Mashify
48
50
  builder.use Faraday::Response::ParseJson
51
+
52
+ builder.adapter Faraday.default_adapter
53
+
49
54
  end
50
55
  end
51
56
 
@@ -1,7 +1,7 @@
1
1
  module Foursquare2
2
2
  module Photos
3
3
 
4
- # Retrive a photo
4
+ # Retrieve a photo
5
5
  #
6
6
  # @params [String] photo_id - The ID of the photo
7
7
 
@@ -9,6 +9,23 @@ module Foursquare2
9
9
  response = connection.get("photos/#{photo_id}")
10
10
  return_error_or_body(response, response.body.response.photo)
11
11
  end
12
+
13
+ # Add a photo
14
+ #
15
+ # @param [Hash] options
16
+ # @option options UploadIO :photo - the photo. Like Faraday::UploadIO.new('pic_path', 'image/jpeg')
17
+ # @option options String :checkinId - the ID of a checkin owned by the user
18
+ # @option options String :tipId - the ID of a tip owned by the user
19
+ # @option options String :venueId - the ID of a venue
20
+ # @option options String :broadcast - Required, one or more of private,public,facebook,twitter. Comma-separated.
21
+ # @option options String :ll - Latitude and longitude in format LAT,LON
22
+ # @option options Integer :llAcc - Accuracy of the lat/lon in meters.
23
+ # @option options Integer :alt - Altitude in meters
24
+ # @option options Integer :altAcc - Accuracy of the altitude in meters
25
+ def add_photo(options={})
26
+ response = connection.post('photos/add', options)
27
+ return_error_or_body(response, response.body.response.photo)
28
+ end
12
29
 
13
30
  end
14
31
  end
@@ -143,6 +143,17 @@ module Foursquare2
143
143
  return_error_or_body(response, response.body.response.venues)
144
144
  end
145
145
 
146
+ # Get the mayorships for a given user.
147
+ #
148
+ # @param [String] user_id - The user to retrieve friends for.
149
+
150
+ def user_mayorships(user_id)
151
+ response = connection.get do |req|
152
+ req.url "users/#{user_id}/mayorships"
153
+ end
154
+ return_error_or_body(response, response.body.response.mayorships)
155
+ end
156
+
146
157
  # Request friendship with a user
147
158
  #
148
159
  # @param [String] user_id - The user to request friendship with.
@@ -0,0 +1,77 @@
1
+ {
2
+ "meta": {
3
+ "code": 200
4
+ },
5
+ "notifications": [
6
+ {
7
+ "type": "notificationTray",
8
+ "item": {
9
+ "unreadCount": 0
10
+ }
11
+ }
12
+ ],
13
+ "response": {
14
+ "mayorships": {
15
+ "count": 2,
16
+ "items": [
17
+ {
18
+ "venue": {
19
+ "id": "4b93d555f964a520125434e3",
20
+ "name": "Amelia river golf course",
21
+ "contact": {},
22
+ "location": {
23
+ "lat": 30.602988,
24
+ "lng": -81.461325,
25
+ "city": "Fernandina Beach",
26
+ "state": "Florida"
27
+ },
28
+ "categories": [],
29
+ "verified": false,
30
+ "stats": {
31
+ "checkinsCount": 8,
32
+ "usersCount": 6,
33
+ "tipCount": 0
34
+ }
35
+ }
36
+ },
37
+ {
38
+ "venue": {
39
+ "id": "4c59f84a6407d13a9795b328",
40
+ "name": "The Bloomy Rind",
41
+ "contact": {},
42
+ "location": {
43
+ "lat": 36.150177983333336,
44
+ "lng": -86.83967341666667
45
+ },
46
+ "categories": [
47
+ {
48
+ "id": "4bf58dd8d48988d1c4941735",
49
+ "name": "Restaurant",
50
+ "pluralName": "Restaurants",
51
+ "shortName": "Other - Food",
52
+ "icon": {
53
+ "prefix": "https://foursquare.com/img/categories/food/default_",
54
+ "sizes": [
55
+ 32,
56
+ 44,
57
+ 64,
58
+ 88,
59
+ 256
60
+ ],
61
+ "name": ".png"
62
+ },
63
+ "primary": true
64
+ }
65
+ ],
66
+ "verified": false,
67
+ "stats": {
68
+ "checkinsCount": 8,
69
+ "usersCount": 4,
70
+ "tipCount": 0
71
+ }
72
+ }
73
+ }
74
+ ]
75
+ }
76
+ }
77
+ }
data/test/test_users.rb CHANGED
@@ -56,5 +56,10 @@ class TestUsers < Test::Unit::TestCase
56
56
  users.size.should == 0
57
57
  end
58
58
 
59
+ should "find a users mayorships" do
60
+ stub_get("https://api.foursquare.com/v2/users/self/mayorships?oauth_token=#{@client.oauth_token}", "user_mayorships.json")
61
+ mayorships = @client.user_mayorships('self')
62
+ mayorships.items.size.should == 2
63
+ end
59
64
  end
60
65
  end
metadata CHANGED
@@ -1,158 +1,221 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: foursquare2
3
- version: !ruby/object:Gem::Version
4
- version: 1.2.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
5
  prerelease:
6
+ segments:
7
+ - 1
8
+ - 3
9
+ - 0
10
+ version: 1.3.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Matt Mueller
9
14
  - Marco Moura
10
15
  autorequire:
11
16
  bindir: bin
12
17
  cert_chain: []
13
- date: 2011-10-20 00:00:00.000000000 -05:00
18
+
19
+ date: 2011-11-30 00:00:00 -06:00
14
20
  default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: faraday
18
- requirement: &10737380 !ruby/object:Gem::Requirement
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
23
+ type: :runtime
24
+ requirement: &id001 !ruby/object:Gem::Requirement
19
25
  none: false
20
- requirements:
26
+ requirements:
21
27
  - - <
22
- - !ruby/object:Gem::Version
23
- version: '0.8'
24
- - - ! '>='
25
- - !ruby/object:Gem::Version
26
- version: '0.6'
27
- type: :runtime
28
+ - !ruby/object:Gem::Version
29
+ hash: 27
30
+ segments:
31
+ - 0
32
+ - 8
33
+ version: "0.8"
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ hash: 7
37
+ segments:
38
+ - 0
39
+ - 6
40
+ version: "0.6"
41
+ name: faraday
42
+ version_requirements: *id001
28
43
  prerelease: false
29
- version_requirements: *10737380
30
- - !ruby/object:Gem::Dependency
31
- name: faraday_middleware
32
- requirement: &10695760 !ruby/object:Gem::Requirement
44
+ - !ruby/object:Gem::Dependency
45
+ type: :runtime
46
+ requirement: &id002 !ruby/object:Gem::Requirement
33
47
  none: false
34
- requirements:
48
+ requirements:
35
49
  - - <
36
- - !ruby/object:Gem::Version
37
- version: '0.8'
38
- - - ! '>='
39
- - !ruby/object:Gem::Version
40
- version: '0.6'
41
- type: :runtime
50
+ - !ruby/object:Gem::Version
51
+ hash: 27
52
+ segments:
53
+ - 0
54
+ - 8
55
+ version: "0.8"
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ hash: 7
59
+ segments:
60
+ - 0
61
+ - 6
62
+ version: "0.6"
63
+ name: faraday_middleware
64
+ version_requirements: *id002
42
65
  prerelease: false
43
- version_requirements: *10695760
44
- - !ruby/object:Gem::Dependency
45
- name: hashie
46
- requirement: &10691680 !ruby/object:Gem::Requirement
66
+ - !ruby/object:Gem::Dependency
67
+ type: :runtime
68
+ requirement: &id003 !ruby/object:Gem::Requirement
47
69
  none: false
48
- requirements:
70
+ requirements:
49
71
  - - ~>
50
- - !ruby/object:Gem::Version
51
- version: '1.0'
52
- type: :runtime
72
+ - !ruby/object:Gem::Version
73
+ hash: 15
74
+ segments:
75
+ - 1
76
+ - 0
77
+ version: "1.0"
78
+ name: hashie
79
+ version_requirements: *id003
53
80
  prerelease: false
54
- version_requirements: *10691680
55
- - !ruby/object:Gem::Dependency
56
- name: shoulda
57
- requirement: &10689700 !ruby/object:Gem::Requirement
58
- none: false
59
- requirements:
60
- - - ! '>='
61
- - !ruby/object:Gem::Version
62
- version: '0'
81
+ - !ruby/object:Gem::Dependency
63
82
  type: :development
83
+ requirement: &id004 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ hash: 3
89
+ segments:
90
+ - 0
91
+ version: "0"
92
+ name: shoulda
93
+ version_requirements: *id004
64
94
  prerelease: false
65
- version_requirements: *10689700
66
- - !ruby/object:Gem::Dependency
67
- name: bundler
68
- requirement: &10654920 !ruby/object:Gem::Requirement
95
+ - !ruby/object:Gem::Dependency
96
+ type: :development
97
+ requirement: &id005 !ruby/object:Gem::Requirement
69
98
  none: false
70
- requirements:
99
+ requirements:
71
100
  - - ~>
72
- - !ruby/object:Gem::Version
73
- version: '1.0'
74
- type: :development
101
+ - !ruby/object:Gem::Version
102
+ hash: 15
103
+ segments:
104
+ - 1
105
+ - 0
106
+ version: "1.0"
107
+ name: bundler
108
+ version_requirements: *id005
75
109
  prerelease: false
76
- version_requirements: *10654920
77
- - !ruby/object:Gem::Dependency
78
- name: jeweler
79
- requirement: &10651560 !ruby/object:Gem::Requirement
110
+ - !ruby/object:Gem::Dependency
111
+ type: :development
112
+ requirement: &id006 !ruby/object:Gem::Requirement
80
113
  none: false
81
- requirements:
114
+ requirements:
82
115
  - - ~>
83
- - !ruby/object:Gem::Version
84
- version: '1.5'
85
- type: :development
116
+ - !ruby/object:Gem::Version
117
+ hash: 5
118
+ segments:
119
+ - 1
120
+ - 5
121
+ version: "1.5"
122
+ name: jeweler
123
+ version_requirements: *id006
86
124
  prerelease: false
87
- version_requirements: *10651560
88
- - !ruby/object:Gem::Dependency
89
- name: rcov
90
- requirement: &10634900 !ruby/object:Gem::Requirement
91
- none: false
92
- requirements:
93
- - - ! '>='
94
- - !ruby/object:Gem::Version
95
- version: '0'
125
+ - !ruby/object:Gem::Dependency
96
126
  type: :development
127
+ requirement: &id007 !ruby/object:Gem::Requirement
128
+ none: false
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ hash: 3
133
+ segments:
134
+ - 0
135
+ version: "0"
136
+ name: rcov
137
+ version_requirements: *id007
97
138
  prerelease: false
98
- version_requirements: *10634900
99
- - !ruby/object:Gem::Dependency
100
- name: fakeweb
101
- requirement: &10632100 !ruby/object:Gem::Requirement
139
+ - !ruby/object:Gem::Dependency
140
+ type: :development
141
+ requirement: &id008 !ruby/object:Gem::Requirement
102
142
  none: false
103
- requirements:
143
+ requirements:
104
144
  - - ~>
105
- - !ruby/object:Gem::Version
106
- version: '1.3'
107
- type: :development
145
+ - !ruby/object:Gem::Version
146
+ hash: 9
147
+ segments:
148
+ - 1
149
+ - 3
150
+ version: "1.3"
151
+ name: fakeweb
152
+ version_requirements: *id008
108
153
  prerelease: false
109
- version_requirements: *10632100
110
- - !ruby/object:Gem::Dependency
111
- name: jnunemaker-matchy
112
- requirement: &10630160 !ruby/object:Gem::Requirement
154
+ - !ruby/object:Gem::Dependency
155
+ type: :development
156
+ requirement: &id009 !ruby/object:Gem::Requirement
113
157
  none: false
114
- requirements:
158
+ requirements:
115
159
  - - ~>
116
- - !ruby/object:Gem::Version
117
- version: '0.4'
118
- type: :development
160
+ - !ruby/object:Gem::Version
161
+ hash: 3
162
+ segments:
163
+ - 0
164
+ - 4
165
+ version: "0.4"
166
+ name: jnunemaker-matchy
167
+ version_requirements: *id009
119
168
  prerelease: false
120
- version_requirements: *10630160
121
- - !ruby/object:Gem::Dependency
122
- name: json_pure
123
- requirement: &10623100 !ruby/object:Gem::Requirement
169
+ - !ruby/object:Gem::Dependency
170
+ type: :development
171
+ requirement: &id010 !ruby/object:Gem::Requirement
124
172
  none: false
125
- requirements:
173
+ requirements:
126
174
  - - ~>
127
- - !ruby/object:Gem::Version
128
- version: '1.4'
129
- type: :development
175
+ - !ruby/object:Gem::Version
176
+ hash: 7
177
+ segments:
178
+ - 1
179
+ - 4
180
+ version: "1.4"
181
+ name: json_pure
182
+ version_requirements: *id010
130
183
  prerelease: false
131
- version_requirements: *10623100
132
- - !ruby/object:Gem::Dependency
133
- name: multi_json
134
- requirement: &10621360 !ruby/object:Gem::Requirement
184
+ - !ruby/object:Gem::Dependency
185
+ type: :development
186
+ requirement: &id011 !ruby/object:Gem::Requirement
135
187
  none: false
136
- requirements:
188
+ requirements:
137
189
  - - <
138
- - !ruby/object:Gem::Version
190
+ - !ruby/object:Gem::Version
191
+ hash: 15
192
+ segments:
193
+ - 2
194
+ - 0
195
+ - 0
139
196
  version: 2.0.0
140
- - - ! '>='
141
- - !ruby/object:Gem::Version
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ hash: 21
200
+ segments:
201
+ - 0
202
+ - 0
203
+ - 5
142
204
  version: 0.0.5
143
- type: :development
205
+ name: multi_json
206
+ version_requirements: *id011
144
207
  prerelease: false
145
- version_requirements: *10621360
146
- description: Gives access to all endpoints in version 2 of foursquare's API with syntax
147
- that will be familiar to those who used the original foursquare gem by Jeremy Welch.
148
- email:
208
+ description: 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.
209
+ email:
149
210
  - muellermr@gmail.com
150
211
  - email@marcomoura.com
151
212
  executables: []
213
+
152
214
  extensions: []
153
- extra_rdoc_files:
215
+
216
+ extra_rdoc_files:
154
217
  - LICENSE.txt
155
- files:
218
+ files:
156
219
  - .document
157
220
  - Gemfile
158
221
  - Gemfile.lock
@@ -187,6 +250,7 @@ files:
187
250
  - test/fixtures/special.json
188
251
  - test/fixtures/tip.json
189
252
  - test/fixtures/user.json
253
+ - test/fixtures/user_mayorships.json
190
254
  - test/fixtures/user_tips.json
191
255
  - test/fixtures/user_tips_empty.json
192
256
  - test/fixtures/venue.json
@@ -201,31 +265,37 @@ files:
201
265
  - test/test_venues.rb
202
266
  has_rdoc: true
203
267
  homepage: http://github.com/mattmueller/foursquare2
204
- licenses:
268
+ licenses:
205
269
  - MIT
206
270
  post_install_message:
207
271
  rdoc_options: []
208
- require_paths:
272
+
273
+ require_paths:
209
274
  - lib
210
- required_ruby_version: !ruby/object:Gem::Requirement
275
+ required_ruby_version: !ruby/object:Gem::Requirement
211
276
  none: false
212
- requirements:
213
- - - ! '>='
214
- - !ruby/object:Gem::Version
215
- version: '0'
216
- segments:
277
+ requirements:
278
+ - - ">="
279
+ - !ruby/object:Gem::Version
280
+ hash: 3
281
+ segments:
217
282
  - 0
218
- hash: 273972918968587298
219
- required_rubygems_version: !ruby/object:Gem::Requirement
283
+ version: "0"
284
+ required_rubygems_version: !ruby/object:Gem::Requirement
220
285
  none: false
221
- requirements:
222
- - - ! '>='
223
- - !ruby/object:Gem::Version
224
- version: '0'
286
+ requirements:
287
+ - - ">="
288
+ - !ruby/object:Gem::Version
289
+ hash: 3
290
+ segments:
291
+ - 0
292
+ version: "0"
225
293
  requirements: []
294
+
226
295
  rubyforge_project:
227
296
  rubygems_version: 1.6.2
228
297
  signing_key:
229
298
  specification_version: 3
230
299
  summary: Foursquare API v2 gem in the spirit of the original foursquare gem
231
300
  test_files: []
301
+