foursquare2 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+