skittles 0.4.0 → 0.5.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/lib/skittles/client/special.rb +15 -1
- data/lib/skittles/client/user.rb +43 -0
- data/lib/skittles/client/venue.rb +2 -2
- data/lib/skittles/version.rb +1 -1
- metadata +79 -75
@@ -3,9 +3,23 @@ module Skittles
|
|
3
3
|
# Define methods related to specials.
|
4
4
|
# @see http://developer.foursquare.com/docs/specials/specials.html
|
5
5
|
module Special
|
6
|
+
# Allows users to indicate a special is improper in some way.
|
7
|
+
#
|
8
|
+
# @params special_id [String] The id of the special being flagged.
|
9
|
+
# @param venue_id [String] The id of the venue running the special.
|
10
|
+
# @param problem [String] One of not_redeemable, not_valuable, other.
|
11
|
+
# @param options [Hash] A customizable set of options.
|
12
|
+
# @option options [String] text Additional text about why the user has flagged this special.
|
13
|
+
# @require_acting_user Yes
|
14
|
+
# @see https://developer.foursquare.com/docs/specials/flag.html
|
15
|
+
def flag_special(special_id, venue_id, problem, options = {})
|
16
|
+
post("specials/#{special_id}/flag", { :venueId => venue_id, :problem => problem }.merge(options))
|
17
|
+
nil
|
18
|
+
end
|
19
|
+
|
6
20
|
# Gives details about a special, including text and unlock rules.
|
7
21
|
#
|
8
|
-
# @param
|
22
|
+
# @param special_id [String] Id of special to retrieve.
|
9
23
|
# @return [Hashie::Mash] A complete special.
|
10
24
|
# @requires_acting_user No
|
11
25
|
# @see http://developer.foursquare.com/docs/specials/specials.html
|
data/lib/skittles/client/user.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'mime/types'
|
2
|
+
|
1
3
|
module Skittles
|
2
4
|
class Client
|
3
5
|
# Define methods related to users.
|
@@ -81,6 +83,7 @@ module Skittles
|
|
81
83
|
def friends(id, options = {})
|
82
84
|
get("users/#{id}/friends").friends
|
83
85
|
end
|
86
|
+
|
84
87
|
# Returns the user's leaderboard.
|
85
88
|
#
|
86
89
|
# @param neightbors [Integer] Number of friends' scores to return that are adjacent to your score in ranked order. The current user's score is returned as well.
|
@@ -91,6 +94,16 @@ module Skittles
|
|
91
94
|
get('users/leaderboard').leaderboard
|
92
95
|
end
|
93
96
|
|
97
|
+
# Returns a user's mayorships
|
98
|
+
#
|
99
|
+
# @params user [String] Identity of the user to get mayorships for. Pass self to get friends of the acting user.
|
100
|
+
# @return [Hashie::Mash] A count and items of objects which currently only contain compact venue objects.
|
101
|
+
# @requires_acting_user Yes
|
102
|
+
# @see https://developer.foursquare.com/docs/users/mayorships.html
|
103
|
+
def mayorships(user = 'self')
|
104
|
+
get("users/#{user}/mayorships").mayorships
|
105
|
+
end
|
106
|
+
|
94
107
|
# Changes whether the acting user will receive pings (phone
|
95
108
|
# notifications) when the specified user checks in.
|
96
109
|
#
|
@@ -116,6 +129,36 @@ module Skittles
|
|
116
129
|
get("users/#{id}/todos", { :sort => sort }.merge(options)).todos
|
117
130
|
end
|
118
131
|
|
132
|
+
# Updates the user's profile photo.
|
133
|
+
#
|
134
|
+
# @param photo [String] Photo under 100KB in multipark MIME encoding with content type image/jpeg, image/gif, or image/png.
|
135
|
+
# @return [Hashie::Mash] The current user object
|
136
|
+
# @requires_acting_user Yes
|
137
|
+
# @see https://developer.foursquare.com/docs/users/update.html
|
138
|
+
def update_user_photo(photo)
|
139
|
+
mime_type = MIME::Types.type_for(photo)[0]
|
140
|
+
params = {
|
141
|
+
:photo => UploadIO.new(photo, mime_type.to_s, "image.#{mime_type.extensions[0]}"),
|
142
|
+
:oauth_token => access_token
|
143
|
+
}
|
144
|
+
uri = URI.parse("#{endpoint}/users/self/update")
|
145
|
+
File.open(photo) do
|
146
|
+
req = Net::HTTP::Post::Multipart.new(uri.path, params)
|
147
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
148
|
+
http.use_ssl = true if uri.scheme == 'https'
|
149
|
+
resp = http.start do |net|
|
150
|
+
net.request(req)
|
151
|
+
end
|
152
|
+
|
153
|
+
case resp.code.to_i
|
154
|
+
when 200..299
|
155
|
+
return Skittles::Utils.parse_json(resp.body).response.user
|
156
|
+
when 400..599
|
157
|
+
Skittles::Utils.handle_foursquare_error(resp)
|
158
|
+
end
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
119
162
|
# Returns profile information for a given user, including selected badges
|
120
163
|
# and mayorships.
|
121
164
|
#
|
@@ -215,7 +215,7 @@ module Skittles
|
|
215
215
|
# @requires_acting_user No
|
216
216
|
# @see http://developer.foursquare.com/docs/venues/search.html
|
217
217
|
def venue_search(ll, options = {})
|
218
|
-
get('venues/search', { :ll => ll }.merge(options)).
|
218
|
+
get('venues/search', { :ll => ll }.merge(options)).venues
|
219
219
|
end
|
220
220
|
|
221
221
|
# Returns tips for a venue.
|
@@ -233,4 +233,4 @@ module Skittles
|
|
233
233
|
end
|
234
234
|
end
|
235
235
|
end
|
236
|
-
end
|
236
|
+
end
|
data/lib/skittles/version.rb
CHANGED
metadata
CHANGED
@@ -1,116 +1,124 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: skittles
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.0
|
4
5
|
prerelease:
|
5
|
-
version: 0.4.0
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Anthony Smith
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-07-29 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
17
15
|
name: oauth2
|
18
|
-
requirement: &
|
16
|
+
requirement: &70223019913040 !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
18
|
+
requirements:
|
21
19
|
- - ~>
|
22
|
-
- !ruby/object:Gem::Version
|
20
|
+
- !ruby/object:Gem::Version
|
23
21
|
version: 0.4.1
|
24
22
|
type: :runtime
|
25
23
|
prerelease: false
|
26
|
-
version_requirements: *
|
27
|
-
- !ruby/object:Gem::Dependency
|
24
|
+
version_requirements: *70223019913040
|
25
|
+
- !ruby/object:Gem::Dependency
|
28
26
|
name: yajl-ruby
|
29
|
-
requirement: &
|
27
|
+
requirement: &70223019912560 !ruby/object:Gem::Requirement
|
30
28
|
none: false
|
31
|
-
requirements:
|
29
|
+
requirements:
|
32
30
|
- - ~>
|
33
|
-
- !ruby/object:Gem::Version
|
31
|
+
- !ruby/object:Gem::Version
|
34
32
|
version: 0.8.1
|
35
33
|
type: :runtime
|
36
34
|
prerelease: false
|
37
|
-
version_requirements: *
|
38
|
-
- !ruby/object:Gem::Dependency
|
35
|
+
version_requirements: *70223019912560
|
36
|
+
- !ruby/object:Gem::Dependency
|
39
37
|
name: hashie
|
40
|
-
requirement: &
|
38
|
+
requirement: &70223019912080 !ruby/object:Gem::Requirement
|
41
39
|
none: false
|
42
|
-
requirements:
|
40
|
+
requirements:
|
43
41
|
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
42
|
+
- !ruby/object:Gem::Version
|
45
43
|
version: 1.0.0
|
46
44
|
type: :runtime
|
47
45
|
prerelease: false
|
48
|
-
version_requirements: *
|
49
|
-
- !ruby/object:Gem::Dependency
|
46
|
+
version_requirements: *70223019912080
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: mime-types
|
49
|
+
requirement: &70223019911600 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.16'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70223019911600
|
58
|
+
- !ruby/object:Gem::Dependency
|
50
59
|
name: rspec
|
51
|
-
requirement: &
|
60
|
+
requirement: &70223019911120 !ruby/object:Gem::Requirement
|
52
61
|
none: false
|
53
|
-
requirements:
|
62
|
+
requirements:
|
54
63
|
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
64
|
+
- !ruby/object:Gem::Version
|
56
65
|
version: 2.5.0
|
57
66
|
type: :development
|
58
67
|
prerelease: false
|
59
|
-
version_requirements: *
|
60
|
-
- !ruby/object:Gem::Dependency
|
68
|
+
version_requirements: *70223019911120
|
69
|
+
- !ruby/object:Gem::Dependency
|
61
70
|
name: bundler
|
62
|
-
requirement: &
|
71
|
+
requirement: &70223019910640 !ruby/object:Gem::Requirement
|
63
72
|
none: false
|
64
|
-
requirements:
|
73
|
+
requirements:
|
65
74
|
- - ~>
|
66
|
-
- !ruby/object:Gem::Version
|
75
|
+
- !ruby/object:Gem::Version
|
67
76
|
version: 1.0.15
|
68
77
|
type: :development
|
69
78
|
prerelease: false
|
70
|
-
version_requirements: *
|
71
|
-
- !ruby/object:Gem::Dependency
|
79
|
+
version_requirements: *70223019910640
|
80
|
+
- !ruby/object:Gem::Dependency
|
72
81
|
name: jeweler
|
73
|
-
requirement: &
|
82
|
+
requirement: &70223019910160 !ruby/object:Gem::Requirement
|
74
83
|
none: false
|
75
|
-
requirements:
|
84
|
+
requirements:
|
76
85
|
- - ~>
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: 1.6.
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: 1.6.4
|
79
88
|
type: :development
|
80
89
|
prerelease: false
|
81
|
-
version_requirements: *
|
82
|
-
- !ruby/object:Gem::Dependency
|
90
|
+
version_requirements: *70223019910160
|
91
|
+
- !ruby/object:Gem::Dependency
|
83
92
|
name: rcov
|
84
|
-
requirement: &
|
93
|
+
requirement: &70223019909680 !ruby/object:Gem::Requirement
|
85
94
|
none: false
|
86
|
-
requirements:
|
87
|
-
- -
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version:
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
90
99
|
type: :development
|
91
100
|
prerelease: false
|
92
|
-
version_requirements: *
|
93
|
-
- !ruby/object:Gem::Dependency
|
101
|
+
version_requirements: *70223019909680
|
102
|
+
- !ruby/object:Gem::Dependency
|
94
103
|
name: yard
|
95
|
-
requirement: &
|
104
|
+
requirement: &70223019909200 !ruby/object:Gem::Requirement
|
96
105
|
none: false
|
97
|
-
requirements:
|
106
|
+
requirements:
|
98
107
|
- - ~>
|
99
|
-
- !ruby/object:Gem::Version
|
108
|
+
- !ruby/object:Gem::Version
|
100
109
|
version: 0.7.2
|
101
110
|
type: :development
|
102
111
|
prerelease: false
|
103
|
-
version_requirements: *
|
104
|
-
description: Foursquare v2 REST API
|
112
|
+
version_requirements: *70223019909200
|
113
|
+
description: A Ruby implementation of the Foursquare v2 REST API. This library implements
|
114
|
+
the Foursquare v2 API and the Foursquare Venues Project (beta) endpoints.
|
105
115
|
email: anthony@sticksnleaves.com
|
106
116
|
executables: []
|
107
|
-
|
108
117
|
extensions: []
|
109
|
-
|
110
|
-
extra_rdoc_files:
|
118
|
+
extra_rdoc_files:
|
111
119
|
- LICENSE.txt
|
112
120
|
- README.rdoc
|
113
|
-
files:
|
121
|
+
files:
|
114
122
|
- lib/skittles.rb
|
115
123
|
- lib/skittles/api.rb
|
116
124
|
- lib/skittles/client.rb
|
@@ -129,36 +137,32 @@ files:
|
|
129
137
|
- lib/skittles/version.rb
|
130
138
|
- LICENSE.txt
|
131
139
|
- README.rdoc
|
132
|
-
has_rdoc: true
|
133
140
|
homepage: http://github.com/anthonator/skittles
|
134
|
-
licenses:
|
141
|
+
licenses:
|
135
142
|
- MIT
|
136
143
|
post_install_message:
|
137
144
|
rdoc_options: []
|
138
|
-
|
139
|
-
require_paths:
|
145
|
+
require_paths:
|
140
146
|
- lib
|
141
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
147
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
142
148
|
none: false
|
143
|
-
requirements:
|
144
|
-
- -
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
|
147
|
-
segments:
|
149
|
+
requirements:
|
150
|
+
- - ! '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
segments:
|
148
154
|
- 0
|
149
|
-
|
150
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
|
+
hash: 3746734199987061722
|
156
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
157
|
none: false
|
152
|
-
requirements:
|
153
|
-
- -
|
154
|
-
- !ruby/object:Gem::Version
|
155
|
-
version:
|
158
|
+
requirements:
|
159
|
+
- - ! '>='
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '0'
|
156
162
|
requirements: []
|
157
|
-
|
158
163
|
rubyforge_project:
|
159
|
-
rubygems_version: 1.6
|
164
|
+
rubygems_version: 1.8.6
|
160
165
|
signing_key:
|
161
166
|
specification_version: 3
|
162
167
|
summary: Foursquare v2 REST API client library for Ruby
|
163
168
|
test_files: []
|
164
|
-
|