github_api 0.7.2 → 0.8.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.
Files changed (74) hide show
  1. data/README.md +6 -5
  2. data/features/{events.feature → activity/events.feature} +8 -8
  3. data/features/{repos → activity}/starring.feature +6 -6
  4. data/features/{repos → activity}/watching.feature +6 -6
  5. data/features/cassettes/{events → activity/events}/issue.yml +0 -0
  6. data/features/cassettes/{events → activity/events}/network.yml +0 -0
  7. data/features/cassettes/{events → activity/events}/org.yml +0 -0
  8. data/features/cassettes/{events → activity/events}/performed.yml +0 -0
  9. data/features/cassettes/{events → activity/events}/public.yml +0 -0
  10. data/features/cassettes/{events → activity/events}/received.yml +0 -0
  11. data/features/cassettes/{events → activity/events}/repo.yml +0 -0
  12. data/features/cassettes/{events → activity/events}/user_org.yml +0 -0
  13. data/features/cassettes/{repos → activity}/starring/list.yml +0 -0
  14. data/features/cassettes/{repos → activity}/starring/star.yml +0 -0
  15. data/features/cassettes/{repos → activity}/starring/starred.yml +0 -0
  16. data/features/cassettes/{repos → activity}/starring/starring.yml +0 -0
  17. data/features/cassettes/{repos → activity}/starring/unstar.yml +0 -0
  18. data/features/cassettes/{repos → activity}/watching/list.yml +0 -0
  19. data/features/cassettes/{repos → activity}/watching/unwatch.yml +0 -0
  20. data/features/cassettes/{repos → activity}/watching/watch.yml +0 -0
  21. data/features/cassettes/{repos → activity}/watching/watched.yml +0 -0
  22. data/features/cassettes/{repos → activity}/watching/watching.yml +0 -0
  23. data/features/github_api.feature +3 -3
  24. data/lib/github_api.rb +1 -1
  25. data/lib/github_api/activity.rb +39 -0
  26. data/lib/github_api/{events.rb → activity/events.rb} +5 -5
  27. data/lib/github_api/activity/notifications.rb +162 -0
  28. data/lib/github_api/{repos → activity}/starring.rb +9 -9
  29. data/lib/github_api/{repos → activity}/watching.rb +9 -9
  30. data/lib/github_api/client.rb +6 -4
  31. data/lib/github_api/repos.rb +2 -14
  32. data/lib/github_api/response.rb +0 -1
  33. data/lib/github_api/version.rb +2 -2
  34. data/spec/fixtures/activity/notifications.json +32 -0
  35. data/spec/fixtures/activity/subscribed.json +8 -0
  36. data/spec/fixtures/activity/threads.json +32 -0
  37. data/spec/github/activity/activity_spec.rb +16 -0
  38. data/spec/github/activity/events/issue_spec.rb +63 -0
  39. data/spec/github/activity/events/network_spec.rb +61 -0
  40. data/spec/github/activity/events/org_spec.rb +60 -0
  41. data/spec/github/activity/events/performed_spec.rb +91 -0
  42. data/spec/github/activity/events/public_spec.rb +55 -0
  43. data/spec/github/activity/events/received_spec.rb +91 -0
  44. data/spec/github/activity/events/repository_spec.rb +65 -0
  45. data/spec/github/activity/events/user_org_spec.rb +63 -0
  46. data/spec/github/activity/notifications/create_spec.rb +44 -0
  47. data/spec/github/activity/notifications/delete_spec.rb +41 -0
  48. data/spec/github/activity/notifications/get_spec.rb +58 -0
  49. data/spec/github/activity/notifications/list_spec.rb +82 -0
  50. data/spec/github/activity/notifications/mark_spec.rb +74 -0
  51. data/spec/github/activity/notifications/subscribed_spec.rb +48 -0
  52. data/spec/github/activity/starring/list_spec.rb +64 -0
  53. data/spec/github/activity/starring/star_spec.rb +36 -0
  54. data/spec/github/activity/starring/starred_spec.rb +53 -0
  55. data/spec/github/activity/starring/starring_spec.rb +38 -0
  56. data/spec/github/activity/starring/unstar_spec.rb +37 -0
  57. data/spec/github/activity/watching/list_spec.rb +59 -0
  58. data/spec/github/activity/watching/unwatch_spec.rb +37 -0
  59. data/spec/github/activity/watching/watch_spec.rb +37 -0
  60. data/spec/github/activity/watching/watched_spec.rb +53 -0
  61. data/spec/github/activity/watching/watching_spec.rb +41 -0
  62. data/spec/github/authorization_spec.rb +2 -2
  63. data/spec/github/issues_spec.rb +1 -1
  64. data/spec/github/repos/comments/delete_spec.rb +2 -0
  65. data/spec/github/repos/delete_spec.rb +1 -1
  66. data/spec/github/repos/get_spec.rb +2 -2
  67. data/spec/github/repos/starring_spec.rb +0 -199
  68. data/spec/github/repos_spec.rb +0 -4
  69. data/spec/github/result_spec.rb +1 -1
  70. metadata +88 -62
  71. data/features/cassettes/git_data/tags/get.yml +0 -54
  72. data/features/git_data/tags.feature +0 -17
  73. data/spec/github/events_spec.rb +0 -491
  74. data/spec/github/repos/watching_spec.rb +0 -203
@@ -1,17 +0,0 @@
1
- Feature: Tags API
2
-
3
- In order to interact with github git data references
4
- GithubAPI gem
5
- Should return the expected results depending on passed parameters
6
-
7
- Background:
8
- Given I have "Github::GitData::Tags" instance
9
-
10
- # Scenario: Lists all tags on a repository
11
- # Given I want to get resource with the following params:
12
- # | user | repo | sha |
13
- # | wycats | thor | 54cbeb8591609aa949212c8988a08741008c9ade |
14
- # When I make request within a cassette named "git_data/tags/get"
15
- # Then the response status should be 200
16
- # And the response type should be JSON
17
- # And the response should not be empty
@@ -1,491 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'spec_helper'
4
-
5
- describe Github::Events do
6
- let(:github) { Github.new }
7
- let(:user) { 'peter-murach' }
8
- let(:repo) { 'github' }
9
-
10
- after { github.user, github.repo, github.oauth_token = nil, nil, nil }
11
-
12
- describe "public" do
13
- context "resource found" do
14
- before do
15
- stub_get("/events").
16
- to_return(:body => fixture('events/events.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
17
- end
18
-
19
- it "should get the resources" do
20
- github.events.public
21
- a_get("/events").should have_been_made
22
- end
23
-
24
- it "should return array of resources" do
25
- events = github.events.public
26
- events.should be_an Array
27
- events.should have(1).items
28
- end
29
-
30
- it "should be a mash type" do
31
- events = github.events.public
32
- events.first.should be_a Hashie::Mash
33
- end
34
-
35
- it "should get event information" do
36
- events = github.events.public
37
- events.first.type.should == 'Event'
38
- end
39
-
40
- it "should yield to a block" do
41
- github.events.should_receive(:public).and_yield('web')
42
- github.events.public { |param| 'web' }
43
- end
44
- end
45
-
46
- context "resource not found" do
47
- before do
48
- stub_get("/events").to_return(:body => "", :status => [404, "Not Found"])
49
- end
50
-
51
- it "should return 404 with a message 'Not Found'" do
52
- expect {
53
- github.events.public
54
- }.to raise_error(Github::Error::NotFound)
55
- end
56
- end
57
- end # public_events
58
-
59
- describe "repository" do
60
- context "resource found" do
61
- before do
62
- stub_get("/repos/#{user}/#{repo}/events").
63
- to_return(:body => fixture('events/events.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
64
- end
65
-
66
- it "should fail to get resource without username" do
67
- expect { github.events.repository nil, repo }.to raise_error(ArgumentError)
68
- end
69
-
70
- it "should get the resources" do
71
- github.events.repository user, repo
72
- a_get("/repos/#{user}/#{repo}/events").should have_been_made
73
- end
74
-
75
- it "should return array of resources" do
76
- events = github.events.repository user, repo
77
- events.should be_an Array
78
- events.should have(1).items
79
- end
80
-
81
- it "should be a mash type" do
82
- events = github.events.repository user, repo
83
- events.first.should be_a Hashie::Mash
84
- end
85
-
86
- it "should get event information" do
87
- events = github.events.repository user, repo
88
- events.first.type.should == 'Event'
89
- end
90
-
91
- it "should yield to a block" do
92
- github.events.should_receive(:repository).with(user, repo).and_yield('web')
93
- github.events.repository(user, repo) { |param| 'web' }
94
- end
95
- end
96
-
97
- context "resource not found" do
98
- before do
99
- stub_get("/repos/#{user}/#{repo}/events").
100
- to_return(:body => "", :status => [404, "Not Found"])
101
- end
102
-
103
- it "should return 404 with a message 'Not Found'" do
104
- expect {
105
- github.events.repository user, repo
106
- }.to raise_error(Github::Error::NotFound)
107
- end
108
- end
109
- end # repository
110
-
111
- describe "issue" do
112
- context "resource found" do
113
- before do
114
- stub_get("/repos/#{user}/#{repo}/issues/events").
115
- to_return(:body => fixture('events/events.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
116
- end
117
-
118
- it "should fail to get resource without username" do
119
- expect { github.events.issue nil, repo }.to raise_error(ArgumentError)
120
- end
121
-
122
- it "should get the resources" do
123
- github.events.issue user, repo
124
- a_get("/repos/#{user}/#{repo}/issues/events").should have_been_made
125
- end
126
-
127
- it "should return array of resources" do
128
- events = github.events.issue user, repo
129
- events.should be_an Array
130
- events.should have(1).items
131
- end
132
-
133
- it "should be a mash type" do
134
- events = github.events.issue user, repo
135
- events.first.should be_a Hashie::Mash
136
- end
137
-
138
- it "should get event information" do
139
- events = github.events.issue user, repo
140
- events.first.type.should == 'Event'
141
- end
142
-
143
- it "should yield to a block" do
144
- github.events.should_receive(:issue).with(user, repo).and_yield('web')
145
- github.events.issue(user, repo) { |param| 'web' }
146
- end
147
- end
148
-
149
- context "resource not found" do
150
- before do
151
- stub_get("/repos/#{user}/#{repo}/issues/events").
152
- to_return(:body => "", :status => [404, "Not Found"])
153
- end
154
-
155
- it "should return 404 with a message 'Not Found'" do
156
- expect {
157
- github.events.issue user, repo
158
- }.to raise_error(Github::Error::NotFound)
159
- end
160
- end
161
- end # repository
162
-
163
- describe "network" do
164
- context "resource found" do
165
- before do
166
- stub_get("/networks/#{user}/#{repo}/events").
167
- to_return(:body => fixture('events/events.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
168
- end
169
-
170
- it "should fail to get resource without username" do
171
- expect { github.events.network nil, repo }.to raise_error(ArgumentError)
172
- end
173
-
174
- it "should get the resources" do
175
- github.events.network user, repo
176
- a_get("/networks/#{user}/#{repo}/events").should have_been_made
177
- end
178
-
179
- it "should return array of resources" do
180
- events = github.events.network user, repo
181
- events.should be_an Array
182
- events.should have(1).items
183
- end
184
-
185
- it "should be a mash type" do
186
- events = github.events.network user, repo
187
- events.first.should be_a Hashie::Mash
188
- end
189
-
190
- it "should get event information" do
191
- events = github.events.network user, repo
192
- events.first.type.should == 'Event'
193
- end
194
-
195
- it "should yield to a block" do
196
- github.events.should_receive(:network).with(user, repo).and_yield('web')
197
- github.events.network(user, repo) { |param| 'web' }
198
- end
199
- end
200
-
201
- context "resource not found" do
202
- before do
203
- stub_get("/networks/#{user}/#{repo}/events").
204
- to_return(:body => "", :status => [404, "Not Found"])
205
- end
206
-
207
- it "should return 404 with a message 'Not Found'" do
208
- expect {
209
- github.events.network user, repo
210
- }.to raise_error(Github::Error::NotFound)
211
- end
212
- end
213
- end # network
214
-
215
- describe "org" do
216
- let(:org) { 'github' }
217
- context "resource found" do
218
- before do
219
- stub_get("/orgs/#{org}/events").
220
- to_return(:body => fixture('events/events.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
221
- end
222
-
223
- it "should fail to get resource without orgname" do
224
- expect { github.events.org nil }.to raise_error(ArgumentError)
225
- end
226
-
227
- it "should get the resources" do
228
- github.events.org org
229
- a_get("/orgs/#{org}/events").should have_been_made
230
- end
231
-
232
- it "should return array of resources" do
233
- events = github.events.org org
234
- events.should be_an Array
235
- events.should have(1).items
236
- end
237
-
238
- it "should be a mash type" do
239
- events = github.events.org org
240
- events.first.should be_a Hashie::Mash
241
- end
242
-
243
- it "should get event information" do
244
- events = github.events.org org
245
- events.first.type.should == 'Event'
246
- end
247
-
248
- it "should yield to a block" do
249
- github.events.should_receive(:org).with(org).and_yield('web')
250
- github.events.org(org) { |param| 'web' }
251
- end
252
- end
253
-
254
- context "resource not found" do
255
- before do
256
- stub_get("/orgs/#{org}/events").
257
- to_return(:body => "", :status => [404, "Not Found"])
258
- end
259
-
260
- it "should return 404 with a message 'Not Found'" do
261
- expect {
262
- github.events.org org
263
- }.to raise_error(Github::Error::NotFound)
264
- end
265
- end
266
- end # org
267
-
268
- describe "received" do
269
- context "resource found" do
270
- before do
271
- stub_get("/users/#{user}/received_events").
272
- to_return(:body => fixture('events/events.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
273
- end
274
-
275
- it "should fail to get resource without username" do
276
- expect { github.events.received nil }.to raise_error(ArgumentError)
277
- end
278
-
279
- it "should get the resources" do
280
- github.events.received user
281
- a_get("/users/#{user}/received_events").should have_been_made
282
- end
283
-
284
- it "should return array of resources" do
285
- events = github.events.received user
286
- events.should be_an Array
287
- events.should have(1).items
288
- end
289
-
290
- it "should be a mash type" do
291
- events = github.events.received user
292
- events.first.should be_a Hashie::Mash
293
- end
294
-
295
- it "should get event information" do
296
- events = github.events.received user
297
- events.first.type.should == 'Event'
298
- end
299
-
300
- it "should yield to a block" do
301
- github.events.should_receive(:received).with(user).and_yield('web')
302
- github.events.received(user) { |param| 'web' }
303
- end
304
- end
305
-
306
- context "all public resources found" do
307
- before do
308
- stub_get("/users/#{user}/received_events/public").
309
- to_return(:body => fixture('events/events.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
310
- end
311
-
312
- it "should get the resources" do
313
- github.events.received user, :public => true
314
- a_get("/users/#{user}/received_events/public").should have_been_made
315
- end
316
-
317
- it "should return array of resources" do
318
- events = github.events.received user, :public => true
319
- events.should be_an Array
320
- events.should have(1).items
321
- end
322
-
323
- it "should be a mash type" do
324
- events = github.events.received user, :public => true
325
- events.first.should be_a Hashie::Mash
326
- end
327
-
328
- it "should get event information" do
329
- events = github.events.received user, :public => true
330
- events.first.type.should == 'Event'
331
- end
332
-
333
- it "should yield to a block" do
334
- github.events.should_receive(:received).with(user).and_yield('web')
335
- github.events.received(user) { |param| 'web' }
336
- end
337
- end
338
-
339
- context "resource not found" do
340
- before do
341
- stub_get("/users/#{user}/received_events").
342
- to_return(:body => "", :status => [404, "Not Found"])
343
- end
344
-
345
- it "should return 404 with a message 'Not Found'" do
346
- expect {
347
- github.events.received user
348
- }.to raise_error(Github::Error::NotFound)
349
- end
350
- end
351
- end # received
352
-
353
- describe "performed" do
354
- context "resource found" do
355
- before do
356
- stub_get("/users/#{user}/events").
357
- to_return(:body => fixture('events/events.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
358
- end
359
-
360
- it "should fail to get resource without username" do
361
- expect { github.events.performed nil }.to raise_error(ArgumentError)
362
- end
363
-
364
- it "should get the resources" do
365
- github.events.performed user
366
- a_get("/users/#{user}/events").should have_been_made
367
- end
368
-
369
- it "should return array of resources" do
370
- events = github.events.performed user
371
- events.should be_an Array
372
- events.should have(1).items
373
- end
374
-
375
- it "should be a mash type" do
376
- events = github.events.performed user
377
- events.first.should be_a Hashie::Mash
378
- end
379
-
380
- it "should get event information" do
381
- events = github.events.performed user
382
- events.first.type.should == 'Event'
383
- end
384
-
385
- it "should yield to a block" do
386
- github.events.should_receive(:performed).with(user).and_yield('web')
387
- github.events.performed(user) { |param| 'web' }
388
- end
389
- end
390
-
391
- context "all public resources found" do
392
- before do
393
- stub_get("/users/#{user}/events/public").
394
- to_return(:body => fixture('events/events.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
395
- end
396
-
397
- it "should get the resources" do
398
- github.events.performed user, :public => true
399
- a_get("/users/#{user}/events/public").should have_been_made
400
- end
401
-
402
- it "should return array of resources" do
403
- events = github.events.performed user, :public => true
404
- events.should be_an Array
405
- events.should have(1).items
406
- end
407
-
408
- it "should be a mash type" do
409
- events = github.events.performed user, :public => true
410
- events.first.should be_a Hashie::Mash
411
- end
412
-
413
- it "should get event information" do
414
- events = github.events.performed user, :public => true
415
- events.first.type.should == 'Event'
416
- end
417
-
418
- it "should yield to a block" do
419
- github.events.should_receive(:performed).with(user).and_yield('web')
420
- github.events.performed(user) { |param| 'web' }
421
- end
422
- end
423
-
424
- context "resource not found" do
425
- before do
426
- stub_get("/users/#{user}/events").
427
- to_return(:body => "", :status => [404, "Not Found"])
428
- end
429
-
430
- it "should return 404 with a message 'Not Found'" do
431
- expect {
432
- github.events.performed user
433
- }.to raise_error(Github::Error::NotFound)
434
- end
435
- end
436
- end # performed
437
-
438
- describe "user_org" do
439
- let(:org) { 'github' }
440
- context "resource found" do
441
- before do
442
- stub_get("/users/#{user}/events/orgs/#{org}").
443
- to_return(:body => fixture('events/events.json'), :status => 200, :headers => {:content_type => "application/json; charset=utf-8"})
444
- end
445
-
446
- it "should fail to get resource without orgname" do
447
- expect { github.events.user_org user, nil }.to raise_error(ArgumentError)
448
- end
449
-
450
- it "should get the resources" do
451
- github.events.user_org user, org
452
- a_get("/users/#{user}/events/orgs/#{org}").should have_been_made
453
- end
454
-
455
- it "should return array of resources" do
456
- events = github.events.user_org user, org
457
- events.should be_an Array
458
- events.should have(1).items
459
- end
460
-
461
- it "should be a mash type" do
462
- events = github.events.user_org user, org
463
- events.first.should be_a Hashie::Mash
464
- end
465
-
466
- it "should get event information" do
467
- events = github.events.user_org user, org
468
- events.first.type.should == 'Event'
469
- end
470
-
471
- it "should yield to a block" do
472
- github.events.should_receive(:user_org).with(user, org).and_yield('web')
473
- github.events.user_org(user, org) { |param| 'web' }
474
- end
475
- end
476
-
477
- context "resource not found" do
478
- before do
479
- stub_get("/users/#{user}/events/orgs/#{org}").
480
- to_return(:body => "", :status => [404, "Not Found"])
481
- end
482
-
483
- it "should return 404 with a message 'Not Found'" do
484
- expect {
485
- github.events.user_org user, org
486
- }.to raise_error(Github::Error::NotFound)
487
- end
488
- end
489
- end # user_org
490
-
491
- end # Github::Events