dribbble 1.0.0.beta2 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0d46c451ba190bda80438f296081283e89c089ac
4
- data.tar.gz: 0bb8dc6141ec990797129ce5c399b79c369b33d2
3
+ metadata.gz: 18cd848202fc891ab28292a51dc036f64125d085
4
+ data.tar.gz: d913356962f8e04f18370d311dfe1dc3db316976
5
5
  SHA512:
6
- metadata.gz: f60447a7217a53c00902de8d97990ec3148081dc723dd830880b8815c6ba3a6493e9f24365f2bc1d24a7797dafcbfa1de8d85a1e864f3b6d24ff26e9384b9e61
7
- data.tar.gz: eb41db304a4d384c7d8d698cbcc25c5ed5159d6095d4d591f765b4786554b47132439c93427b4f8bc2f0f7545c4e659130d4013c74d7d06b57c94b37d20b5f16
6
+ metadata.gz: 2f884da43284d7c6cf7bf988b2af6f748ebd10daccfbfbdbd4fe1705c79cf18f17dea38ed4dc6be7b9035a7db301ab96c394b3513374f513ee9f6b970dc74312
7
+ data.tar.gz: 1a5ccdecd5ca1d38ff301ce9e3cdca166705bd2e15a357121b83fef7bcf4cd7322a94012261bb1e56302ddcf8e0034dae88d620e6bc5c9389278a385125781b6
data/.travis.yml CHANGED
@@ -1,10 +1,14 @@
1
+ sudo: false
1
2
  language: ruby
2
3
 
3
4
  cache: bundler
4
5
  rvm:
5
6
  - 2.0.0
6
- - 2.1.5
7
- - 2.2.0
7
+ - 2.1.7
8
+ - 2.2.3
9
+ - 2.3.0-dev
8
10
 
9
11
  matrix:
10
12
  fast_finish: true
13
+ allow_failures:
14
+ - rvm: 2.3.0-dev
data/README.md CHANGED
@@ -23,70 +23,380 @@ gem 'dribbble'
23
23
  gem install dribbble
24
24
  ```
25
25
 
26
+ ---
27
+
28
+
29
+
30
+
26
31
  ## Usage
27
32
 
28
- First you need to instanciate a client with a client access token. You can get one by creating an application on [developer.dribbble.com](http://developer.dribbble.com/).
33
+ Lets assume you have your token set:
29
34
 
30
35
  ```ruby
31
- client = Dribbble::Client.new token: '0123456789abcdef'
36
+ token = 'my_access_token'
32
37
  ```
33
38
 
34
- ### User
35
-
36
- You can get the current user logged in by calling `client.user`
39
+ Some calls are through a client:
37
40
 
38
41
  ```ruby
39
- client.get_user
40
- #=> #<Dribbble::User ...>
42
+ client = Dribbble::Client.new(token)
41
43
  ```
42
44
 
43
- Or you can get a specific user by knowing his ID
44
45
 
46
+
47
+
48
+ ### Buckets
49
+
50
+ ##### Find a bucket
51
+ ```ruby
52
+ bucket = Dribbble::Bucket.find(token, '2754')
53
+ ```
54
+
55
+ ##### Create a bucket
45
56
  ```ruby
46
- user = client.get_user(1)
47
- #=> #<Dribbble::User id=1 ...>
57
+ bucket = Dribbble::Bucket.create(token, name: 'A new bucket', description: 'A description')
48
58
  ```
49
59
 
50
- You can access users attributes like this :
60
+ ##### Update a bucket
61
+ ```ruby
62
+ bucket.update name: 'An updated bucket name'
63
+ ```
51
64
 
65
+ ##### Delete a bucket
52
66
  ```ruby
53
- user.name
54
- #=> "Charley D."
67
+ bucket.delete
68
+ ```
69
+
70
+ #### Bucket shots
55
71
 
56
- user.username
57
- #=> "Calyhre"
72
+ ##### List bucket shots
73
+ ```ruby
74
+ shots = bucket.shots
58
75
  ```
59
76
 
60
- A user also have buckets :
77
+ ##### Add shot to a bucket
78
+ ```ruby
79
+ bucket.add_shot(329335)
80
+ # or
81
+ bucket.add_shot(shot) # shot is a Dribbble::Shot
82
+ ```
61
83
 
84
+ ##### Remove shot from a bucket
62
85
  ```ruby
63
- user.buckets
64
- #=> [#<Dribbble::Bucket ...>, #<Dribbble::Bucket ...>]
86
+ bucket.remove_shot(329335)
87
+ # or
88
+ bucket.remove_shot(shot) # shot is a Dribbble::Shot
65
89
  ```
66
90
 
67
- ... And shots :
68
91
 
92
+
93
+
94
+ ### Projects
95
+
96
+ ##### Find a Projects
97
+ ```ruby
98
+ project = Dribbble::Project.find(token, 3)
99
+ ```
100
+
101
+ #### Project shots
69
102
  ```ruby
70
- user.shots
71
- #=> [#<Dribbble::Shot ...>, #<Dribbble::Shot ...>]
103
+ shots = project.shots
72
104
  ```
73
105
 
106
+
107
+
108
+
74
109
  ### Shots
75
110
 
76
- You can create a shot by calling `client.create_shot`
111
+ ##### List shots
112
+ ```ruby
113
+ shots = Dribbble::Shot.all(token)
114
+ ```
115
+
116
+ ##### Find a shot
117
+ ```ruby
118
+ shot = Dribbble::Shot.find(token, 1971500)
119
+ ```
120
+
121
+ ##### Create a shot
122
+ ```ruby
123
+ params = {
124
+ title: 'A new shot',
125
+ description: 'Shot description',
126
+ tags: %w(tag1 tag2),
127
+ team_id: 1234,
128
+ rebound_source_id: 1234,
129
+ }
130
+ shot = Dribbble::Shot.create(token, params)
131
+ ```
77
132
 
133
+ ##### Update a shot
78
134
  ```ruby
79
- shot = {
80
- title: 'Shot title',
81
- desciption: 'Shot description',
82
- image: File.new('some/directory/image.jpg', 'rb'),
83
- tags: %w(tag1 tag2)
135
+ params = {
136
+ title: 'A new shot',
137
+ description: 'Shot description',
138
+ tags: %w(tag1 tag2),
139
+ team_id: 1234
84
140
  }
141
+ shot.update(params)
142
+ ```
143
+
144
+ ##### Delete a shot
145
+ ```ruby
146
+ shot.delete
147
+ ```
148
+
149
+ #### Shot attachments
85
150
 
86
- client.create_shot(shot)
87
- #=> True
151
+ ##### List attachments for a shot
152
+ ```ruby
153
+ shot.attachments
154
+ ```
155
+
156
+ ##### Create an attachment
157
+ ```ruby
158
+ shot.create_attachment(file: File.open('attachment_path'))
88
159
  ```
89
160
 
161
+ ##### Get a single attachment
162
+ ```ruby
163
+ shot.find_attachment(206165)
164
+ ```
165
+
166
+ ##### Delete an attachment
167
+ ```ruby
168
+ shot.delete_attachment(206165)
169
+ ```
170
+
171
+
172
+ #### Shot buckets
173
+ ##### List buckets for a shot
174
+ ```ruby
175
+ shot.buckets
176
+ ```
177
+
178
+
179
+ #### Shot comments
180
+ ##### List comments for a shot
181
+ ```ruby
182
+ shot.comments
183
+ ```
184
+
185
+ ##### Create a comment
186
+ ```ruby
187
+ comment = shot.create_comment(body: 'A comment')
188
+ ```
189
+
190
+ ##### Get a single comment
191
+ ```ruby
192
+ comment = shot.find_comment(1145736)
193
+ ```
194
+
195
+ ##### Update a comment
196
+ ```ruby
197
+ comment = shot.update_comment(1145736, body: 'Comment body')
198
+ ```
199
+
200
+ ##### Delete a comment
201
+ ```ruby
202
+ shot.delete_comment(1145736)
203
+ ```
204
+
205
+ ##### List likes for a comment
206
+ ```ruby
207
+ comment.likes
208
+ ```
209
+
210
+ ##### Check if you like a comment
211
+ ```ruby
212
+ comment.like?
213
+ ```
214
+
215
+ ##### Like a comment
216
+ ```ruby
217
+ comment.like!
218
+ ```
219
+
220
+ ##### Unlike a comment
221
+ ```ruby
222
+ comment.unlike!
223
+ ```
224
+
225
+ #### Shot likes
226
+ ##### List the likes for a shot
227
+ ```ruby
228
+ shot.likes
229
+ ```
230
+
231
+ ##### Check if you like a shot
232
+ ```ruby
233
+ shot.like?
234
+ ```
235
+
236
+ ##### Like a shot
237
+ ```ruby
238
+ shot.like!
239
+ ```
240
+
241
+ ##### Unlike a shot
242
+ ```ruby
243
+ shot.unlike!
244
+ ```
245
+
246
+ #### Shot projects
247
+ ##### List projects for a shot
248
+ ```ruby
249
+ projects = shot.projects
250
+ ```
251
+
252
+ #### Shot rebounds
253
+ ##### List rebounds for a shot
254
+ ```ruby
255
+ shots = shot.rebounds
256
+ ```
257
+
258
+
259
+
260
+
261
+ ### Teams
262
+
263
+ Let's assume you have a team:
264
+ ```ruby
265
+ user = Dribbble::User.find(token, 483195)
266
+ team = user.teams.first
267
+ ```
268
+
269
+ #### Team members
270
+ ##### List a team’s members
271
+ ```ruby
272
+ users = team.members
273
+ ```
274
+
275
+
276
+ #### Team shots
277
+ ##### List shots for a team
278
+ ```ruby
279
+ shots = team.shots
280
+ ```
281
+
282
+
283
+
284
+
285
+ ### Users
286
+ ##### Get a single user
287
+ ```ruby
288
+ user = Dribbble::User.find(token, 483195)
289
+ ```
290
+
291
+ ##### Get the authenticated user
292
+ ```ruby
293
+ user = client.user
294
+ ```
295
+
296
+
297
+ #### User buckets
298
+ ##### List a user’s buckets
299
+ ```ruby
300
+ user.buckets
301
+ ```
302
+
303
+ ##### List authenticated user’s buckets
304
+ ```ruby
305
+ buckets = client.buckets
306
+ ```
307
+
308
+
309
+ #### User followers
310
+ ##### List followers of a user
311
+ ```ruby
312
+ users = user.followers
313
+ ```
314
+
315
+ ##### List followers of authenticated user
316
+ ```ruby
317
+ users = client.followers
318
+ ```
319
+
320
+ ##### List users followed by a user
321
+ ```ruby
322
+ users = user.following
323
+ ```
324
+
325
+ ##### List shots for users followed by a authenticated user
326
+ ```ruby
327
+ shots = client.following_shots
328
+ ```
329
+
330
+ ##### Check if you are following a user
331
+ ```ruby
332
+ user.following?
333
+ ```
334
+
335
+ ##### Check if one user is following another
336
+ ```ruby
337
+ user.following?(483195)
338
+ ```
339
+
340
+ ##### Follow a user
341
+ ```ruby
342
+ user.follow!
343
+ ```
344
+
345
+ ##### Unfollow a user
346
+ ```ruby
347
+ user.unfollow!
348
+ ```
349
+
350
+
351
+ #### User likes
352
+ ##### List shot likes for a user
353
+ ```ruby
354
+ shots = user.likes
355
+ ```
356
+
357
+ ##### List shot likes for authenticated user
358
+ ```ruby
359
+ shots = client.likes
360
+ ```
361
+
362
+
363
+ #### User projects
364
+ ##### List a user’s projects
365
+ ```ruby
366
+ projects = user.projects
367
+ ```
368
+
369
+ ##### List authenticated user’s projects
370
+ ```ruby
371
+ projects = client.projects
372
+ ```
373
+
374
+
375
+ #### User shots
376
+ ##### List shots for a user
377
+ ```ruby
378
+ shots = user.shots
379
+ ```
380
+
381
+ ##### List shots for authenticated user
382
+ ```ruby
383
+ shots = client.shots
384
+ ```
385
+
386
+
387
+ #### User teams
388
+ ##### List a user’s teams
389
+ ```ruby
390
+ teams = user.teams
391
+ ```
392
+
393
+ ##### List authenticated user’s teams
394
+ ```ruby
395
+ teams = client.teams
396
+ ```
397
+
398
+
399
+
90
400
  ### Pagination & parameters
91
401
 
92
402
  All requests are paginated, defaults params are :
@@ -99,13 +409,11 @@ All requests are paginated, defaults params are :
99
409
  You override them or adding some by passing a `Hash` to every request :
100
410
 
101
411
  ```ruby
102
- client.user page: 2, custom_param: 'My param'
412
+ user.shots page: 2, custom_param: 'My param'
103
413
  ```
104
414
 
105
415
  ## Contributing
106
416
 
107
- [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/Calyhre/dribbble?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
108
-
109
417
  Feel free to help me make this gem awesome !
110
418
 
111
419
  [Contributors](https://github.com/Calyhre/dribbble/graphs/contributors) and [CONTRIBUTING](https://github.com/Calyhre/dribbble/blob/master/CONTRIBUTING.md)
data/lib/dribbble/base.rb CHANGED
@@ -32,66 +32,6 @@ module Dribbble
32
32
  end
33
33
  end
34
34
 
35
- # Get a single bucket
36
- def get_bucket(id)
37
- Dribbble::Bucket.new @token, html_get("/buckets/#{id}")
38
- end
39
-
40
- # Get authenticated user's buckets
41
- def get_buckets(attrs = {})
42
- Dribbble::Bucket.batch_new token, html_get('/user/buckets', attrs)
43
- end
44
-
45
- # Get authenticated user's followers
46
- def get_followers(attrs = {})
47
- Dribbble::User.batch_new token, html_get('/user/followers', attrs)
48
- end
49
-
50
- # Get authenticated user's likes
51
- def get_likes(attrs = {})
52
- Dribbble::Shot.batch_new token, html_get('/user/likes', attrs), 'shot'
53
- end
54
-
55
- # Get a single project
56
- def get_project(id)
57
- Dribbble::Project.new @token, html_get("/projects/#{id}")
58
- end
59
-
60
- # Get authenticated user's followers
61
- def get_projects(attrs = {})
62
- Dribbble::Project.batch_new token, html_get('/user/projects', attrs)
63
- end
64
-
65
- # Get a single Shot
66
- def get_shot(id)
67
- Dribbble::Shot.new @token, html_get("/shots/#{id}")
68
- end
69
-
70
- # Get authenticated user's shots
71
- def get_shots(attrs = {})
72
- Dribbble::Shot.batch_new token, html_get('/user/shots', attrs)
73
- end
74
-
75
- # Get authenticated user's followees shots
76
- # Limited to first 600 shots regardless of the pagination
77
- def get_following_shots(attrs = {})
78
- Dribbble::Shot.batch_new token, html_get('/user/following/shots', attrs)
79
- end
80
-
81
- # Get authenticated user's teams
82
- def get_teams(attrs = {})
83
- Dribbble::Team.batch_new token, html_get('/user/teams', attrs)
84
- end
85
-
86
- # Get a single User or the authenticated one
87
- def get_user(id = nil)
88
- if id
89
- Dribbble::User.new @token, html_get("/users/#{id}")
90
- else
91
- Dribbble::User.new @token, html_get('/user')
92
- end
93
- end
94
-
95
35
  private
96
36
 
97
37
  def build_dribbble_url(id, dribbble_url)
@@ -10,9 +10,7 @@ module Dribbble
10
10
  include Dribbble::Utils::Updatable
11
11
  include Dribbble::Utils::Deletable
12
12
 
13
- def shots(attrs = {})
14
- Dribbble::Shot.batch_new token, html_get("/bucket/#{id}/shots", attrs)
15
- end
13
+ has_many :shots
16
14
 
17
15
  def add_shot(shot)
18
16
  shot_id = shot.is_a?(Dribbble::Shot) ? shot.id : shot
@@ -13,9 +13,51 @@ module Dribbble
13
13
  class Client < Dribbble::Base
14
14
  include Dribbble::Utils
15
15
 
16
- def initialize(token: nil)
16
+ def initialize(token = nil)
17
+ token = token.is_a?(Hash) ? token[:token] : token
17
18
  @token = token
18
19
  fail Dribbble::Error::MissingToken if @token.nil?
19
20
  end
21
+
22
+ # Get authenticated user's buckets
23
+ def buckets(attrs = {})
24
+ Dribbble::Bucket.batch_new token, html_get('/user/buckets', attrs)
25
+ end
26
+
27
+ # Get authenticated user's followers
28
+ def followers(attrs = {})
29
+ Dribbble::User.batch_new token, html_get('/user/followers', attrs)
30
+ end
31
+
32
+ # Get authenticated user's likes
33
+ def likes(attrs = {})
34
+ Dribbble::Shot.batch_new token, html_get('/user/likes', attrs), 'shot'
35
+ end
36
+
37
+ # Get authenticated user's followers
38
+ def projects(attrs = {})
39
+ Dribbble::Project.batch_new token, html_get('/user/projects', attrs)
40
+ end
41
+
42
+ # Get authenticated user's shots
43
+ def shots(attrs = {})
44
+ Dribbble::Shot.batch_new token, html_get('/user/shots', attrs)
45
+ end
46
+
47
+ # Get authenticated user's followees shots
48
+ # Limited to first 600 shots regardless of the pagination
49
+ def following_shots(attrs = {})
50
+ Dribbble::Shot.batch_new token, html_get('/user/following/shots', attrs)
51
+ end
52
+
53
+ # Get authenticated user's teams
54
+ def teams(attrs = {})
55
+ Dribbble::Team.batch_new token, html_get('/user/teams', attrs)
56
+ end
57
+
58
+ # Get a single User or the authenticated one
59
+ def user
60
+ Dribbble::User.new @token, html_get('/user')
61
+ end
20
62
  end
21
63
  end
@@ -3,9 +3,7 @@ module Dribbble
3
3
  module Findable
4
4
  module ClassMethods
5
5
  def find(token, id)
6
- @token = token
7
- @client = Dribbble::Client.new token: @token
8
- @client.send "get_#{name.split('::').last.downcase}", id
6
+ new token, html_get("/#{pluralized_class_name}/#{id}")
9
7
  end
10
8
  end
11
9
 
@@ -1,4 +1,4 @@
1
1
  # Dribbble Version
2
2
  module Dribbble
3
- VERSION = '1.0.0.beta2'
3
+ VERSION = '1.0.0'
4
4
  end
@@ -48,143 +48,4 @@ describe Dribbble::Client do
48
48
  end
49
49
  end
50
50
  end
51
-
52
- describe 'on #get_bucket' do
53
- subject do
54
- stub_dribbble :get, '/buckets/2754', DribbbleAPI::BucketSuccess
55
- @base.get_bucket 2754
56
- end
57
-
58
- it 'return a bucket' do
59
- expect(subject).to be_a Dribbble::Bucket
60
- expect(subject.id).to eq(2754)
61
- end
62
- end
63
-
64
- describe 'on #get_buckets' do
65
- subject do
66
- stub_dribbble :get, '/user/buckets', DribbbleAPI::BucketsSuccess
67
- @base.get_buckets
68
- end
69
-
70
- it 'return buckets' do
71
- expect(subject.first).to be_a Dribbble::Bucket
72
- end
73
- end
74
-
75
- describe 'on #get_followers' do
76
- subject do
77
- stub_dribbble :get, '/user/followers', DribbbleAPI::FollowersSuccess
78
- @base.get_followers
79
- end
80
-
81
- it 'return users' do
82
- expect(subject.first).to be_a Dribbble::User
83
- end
84
- end
85
-
86
- describe 'on #get_likes' do
87
- subject do
88
- stub_dribbble :get, '/user/likes', DribbbleAPI::UserLikesSuccess
89
- @base.get_likes
90
- end
91
-
92
- it 'return shots' do
93
- expect(subject.first).to be_a Dribbble::Shot
94
- end
95
- end
96
-
97
- describe 'on #get_project' do
98
- subject do
99
- stub_dribbble :get, '/projects/3', DribbbleAPI::ProjectSuccess
100
- @base.get_project 3
101
- end
102
-
103
- it 'return a project' do
104
- expect(subject).to be_a Dribbble::Project
105
- expect(subject.id).to eq(3)
106
- end
107
- end
108
-
109
- describe 'on #get_projects' do
110
- subject do
111
- stub_dribbble :get, '/user/projects', DribbbleAPI::ProjectsSuccess
112
- @base.get_projects
113
- end
114
-
115
- it 'return projects' do
116
- expect(subject.first).to be_a Dribbble::Project
117
- end
118
- end
119
-
120
- describe 'on #get_shot' do
121
- subject do
122
- stub_dribbble :get, '/shots/471756', DribbbleAPI::ShotSuccess
123
- @base.get_shot 471_756
124
- end
125
-
126
- it 'return a shot' do
127
- expect(subject).to be_a Dribbble::Shot
128
- expect(subject.id).to eq(471_756)
129
- end
130
- end
131
-
132
- describe 'on #get_shots' do
133
- subject do
134
- stub_dribbble :get, '/user/shots', DribbbleAPI::ShotsSuccess
135
- @base.get_shots
136
- end
137
-
138
- it 'return shots' do
139
- expect(subject.first).to be_a Dribbble::Shot
140
- end
141
- end
142
-
143
- describe 'on #get_following_shots' do
144
- subject do
145
- stub_dribbble :get, '/user/following/shots', DribbbleAPI::ShotsSuccess
146
- @base.get_following_shots
147
- end
148
-
149
- it 'return shots' do
150
- expect(subject.first).to be_a Dribbble::Shot
151
- end
152
- end
153
-
154
- describe 'on #get_teams' do
155
- subject do
156
- stub_dribbble :get, '/user/teams', DribbbleAPI::TeamsSuccess
157
- @base.get_teams
158
- end
159
-
160
- it 'return teams' do
161
- expect(subject.first).to be_a Dribbble::Team
162
- end
163
- end
164
-
165
- describe 'on #get_user' do
166
- describe 'without id' do
167
- subject do
168
- stub_dribbble :get, '/user', DribbbleAPI::CurrentUserSuccess
169
- @base.get_user
170
- end
171
-
172
- it 'return current user' do
173
- expect(subject).to be_a Dribbble::User
174
- expect(subject.id).to eq(8_008_135)
175
- end
176
- end
177
-
178
- describe 'with id' do
179
- subject do
180
- stub_dribbble :get, '/users/483195', DribbbleAPI::UserSuccess
181
- @base.get_user 483_195
182
- end
183
-
184
- it 'return current user' do
185
- expect(subject).to be_a Dribbble::User
186
- expect(subject.id).to eq(483_195)
187
- end
188
- end
189
- end
190
51
  end
@@ -44,7 +44,7 @@ describe Dribbble::Bucket do
44
44
 
45
45
  describe 'on #shots' do
46
46
  subject do
47
- stub_dribbble :get, '/bucket/2754/shots', DribbbleAPI::ShotsSuccess
47
+ stub_dribbble :get, '/buckets/2754/shots', DribbbleAPI::ShotsSuccess
48
48
  @bucket.shots
49
49
  end
50
50
 
@@ -1,6 +1,10 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Dribbble::Client do
4
+ before :all do
5
+ @client = Dribbble::Client.new 'valid_token'
6
+ end
7
+
4
8
  describe 'without token' do
5
9
  it 'raises Dribbble::Error::MissingToken' do
6
10
  expect do
@@ -18,7 +22,7 @@ describe Dribbble::Client do
18
22
 
19
23
  it 'raise Dribbble::Error::Unauthorized' do
20
24
  expect do
21
- subject.get_user
25
+ subject.user
22
26
  end.to raise_error(Dribbble::Error::Unauthorized)
23
27
  end
24
28
  end
@@ -30,9 +34,98 @@ describe Dribbble::Client do
30
34
  end
31
35
 
32
36
  it 'return a Dribbble::User' do
33
- expect(subject.get_user).to be_a Dribbble::User
34
- expect(subject.get_user.name).to be_a String
37
+ expect(subject.user).to be_a Dribbble::User
38
+ expect(subject.user.name).to be_a String
35
39
  end
36
40
  end
37
41
  end
42
+
43
+ describe 'on #buckets' do
44
+ subject do
45
+ stub_dribbble :get, '/user/buckets', DribbbleAPI::BucketsSuccess
46
+ @client.buckets
47
+ end
48
+
49
+ it 'return buckets' do
50
+ expect(subject.first).to be_a Dribbble::Bucket
51
+ end
52
+ end
53
+
54
+ describe 'on #followers' do
55
+ subject do
56
+ stub_dribbble :get, '/user/followers', DribbbleAPI::FollowersSuccess
57
+ @client.followers
58
+ end
59
+
60
+ it 'return users' do
61
+ expect(subject.first).to be_a Dribbble::User
62
+ end
63
+ end
64
+
65
+ describe 'on #likes' do
66
+ subject do
67
+ stub_dribbble :get, '/user/likes', DribbbleAPI::UserLikesSuccess
68
+ @client.likes
69
+ end
70
+
71
+ it 'return shots' do
72
+ expect(subject.first).to be_a Dribbble::Shot
73
+ end
74
+ end
75
+
76
+ describe 'on #projects' do
77
+ subject do
78
+ stub_dribbble :get, '/user/projects', DribbbleAPI::ProjectsSuccess
79
+ @client.projects
80
+ end
81
+
82
+ it 'return projects' do
83
+ expect(subject.first).to be_a Dribbble::Project
84
+ end
85
+ end
86
+
87
+ describe 'on #shots' do
88
+ subject do
89
+ stub_dribbble :get, '/user/shots', DribbbleAPI::ShotsSuccess
90
+ @client.shots
91
+ end
92
+
93
+ it 'return shots' do
94
+ expect(subject.first).to be_a Dribbble::Shot
95
+ end
96
+ end
97
+
98
+ describe 'on #following_shots' do
99
+ subject do
100
+ stub_dribbble :get, '/user/following/shots', DribbbleAPI::ShotsSuccess
101
+ @client.following_shots
102
+ end
103
+
104
+ it 'return shots' do
105
+ expect(subject.first).to be_a Dribbble::Shot
106
+ end
107
+ end
108
+
109
+ describe 'on #teams' do
110
+ subject do
111
+ stub_dribbble :get, '/user/teams', DribbbleAPI::TeamsSuccess
112
+ @client.teams
113
+ end
114
+
115
+ it 'return teams' do
116
+ expect(subject.first).to be_a Dribbble::Team
117
+ end
118
+ end
119
+
120
+ describe 'on #user' do
121
+ subject do
122
+ stub_dribbble :get, '/user', DribbbleAPI::CurrentUserSuccess
123
+ @client.user
124
+ end
125
+
126
+ it 'return current user' do
127
+ expect(subject).to be_a Dribbble::User
128
+ expect(subject.id).to eq(8_008_135)
129
+ end
130
+ end
38
131
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dribbble
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Calyhre
@@ -182,9 +182,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
182
182
  version: 2.0.0
183
183
  required_rubygems_version: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - ">"
185
+ - - ">="
186
186
  - !ruby/object:Gem::Version
187
- version: 1.3.1
187
+ version: '0'
188
188
  requirements: []
189
189
  rubyforge_project:
190
190
  rubygems_version: 2.2.2