github_api 0.7.2 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +6 -5
- data/features/{events.feature → activity/events.feature} +8 -8
- data/features/{repos → activity}/starring.feature +6 -6
- data/features/{repos → activity}/watching.feature +6 -6
- data/features/cassettes/{events → activity/events}/issue.yml +0 -0
- data/features/cassettes/{events → activity/events}/network.yml +0 -0
- data/features/cassettes/{events → activity/events}/org.yml +0 -0
- data/features/cassettes/{events → activity/events}/performed.yml +0 -0
- data/features/cassettes/{events → activity/events}/public.yml +0 -0
- data/features/cassettes/{events → activity/events}/received.yml +0 -0
- data/features/cassettes/{events → activity/events}/repo.yml +0 -0
- data/features/cassettes/{events → activity/events}/user_org.yml +0 -0
- data/features/cassettes/{repos → activity}/starring/list.yml +0 -0
- data/features/cassettes/{repos → activity}/starring/star.yml +0 -0
- data/features/cassettes/{repos → activity}/starring/starred.yml +0 -0
- data/features/cassettes/{repos → activity}/starring/starring.yml +0 -0
- data/features/cassettes/{repos → activity}/starring/unstar.yml +0 -0
- data/features/cassettes/{repos → activity}/watching/list.yml +0 -0
- data/features/cassettes/{repos → activity}/watching/unwatch.yml +0 -0
- data/features/cassettes/{repos → activity}/watching/watch.yml +0 -0
- data/features/cassettes/{repos → activity}/watching/watched.yml +0 -0
- data/features/cassettes/{repos → activity}/watching/watching.yml +0 -0
- data/features/github_api.feature +3 -3
- data/lib/github_api.rb +1 -1
- data/lib/github_api/activity.rb +39 -0
- data/lib/github_api/{events.rb → activity/events.rb} +5 -5
- data/lib/github_api/activity/notifications.rb +162 -0
- data/lib/github_api/{repos → activity}/starring.rb +9 -9
- data/lib/github_api/{repos → activity}/watching.rb +9 -9
- data/lib/github_api/client.rb +6 -4
- data/lib/github_api/repos.rb +2 -14
- data/lib/github_api/response.rb +0 -1
- data/lib/github_api/version.rb +2 -2
- data/spec/fixtures/activity/notifications.json +32 -0
- data/spec/fixtures/activity/subscribed.json +8 -0
- data/spec/fixtures/activity/threads.json +32 -0
- data/spec/github/activity/activity_spec.rb +16 -0
- data/spec/github/activity/events/issue_spec.rb +63 -0
- data/spec/github/activity/events/network_spec.rb +61 -0
- data/spec/github/activity/events/org_spec.rb +60 -0
- data/spec/github/activity/events/performed_spec.rb +91 -0
- data/spec/github/activity/events/public_spec.rb +55 -0
- data/spec/github/activity/events/received_spec.rb +91 -0
- data/spec/github/activity/events/repository_spec.rb +65 -0
- data/spec/github/activity/events/user_org_spec.rb +63 -0
- data/spec/github/activity/notifications/create_spec.rb +44 -0
- data/spec/github/activity/notifications/delete_spec.rb +41 -0
- data/spec/github/activity/notifications/get_spec.rb +58 -0
- data/spec/github/activity/notifications/list_spec.rb +82 -0
- data/spec/github/activity/notifications/mark_spec.rb +74 -0
- data/spec/github/activity/notifications/subscribed_spec.rb +48 -0
- data/spec/github/activity/starring/list_spec.rb +64 -0
- data/spec/github/activity/starring/star_spec.rb +36 -0
- data/spec/github/activity/starring/starred_spec.rb +53 -0
- data/spec/github/activity/starring/starring_spec.rb +38 -0
- data/spec/github/activity/starring/unstar_spec.rb +37 -0
- data/spec/github/activity/watching/list_spec.rb +59 -0
- data/spec/github/activity/watching/unwatch_spec.rb +37 -0
- data/spec/github/activity/watching/watch_spec.rb +37 -0
- data/spec/github/activity/watching/watched_spec.rb +53 -0
- data/spec/github/activity/watching/watching_spec.rb +41 -0
- data/spec/github/authorization_spec.rb +2 -2
- data/spec/github/issues_spec.rb +1 -1
- data/spec/github/repos/comments/delete_spec.rb +2 -0
- data/spec/github/repos/delete_spec.rb +1 -1
- data/spec/github/repos/get_spec.rb +2 -2
- data/spec/github/repos/starring_spec.rb +0 -199
- data/spec/github/repos_spec.rb +0 -4
- data/spec/github/result_spec.rb +1 -1
- metadata +88 -62
- data/features/cassettes/git_data/tags/get.yml +0 -54
- data/features/git_data/tags.feature +0 -17
- data/spec/github/events_spec.rb +0 -491
- data/spec/github/repos/watching_spec.rb +0 -203
@@ -3,14 +3,14 @@
|
|
3
3
|
module Github
|
4
4
|
# Repository Starring is a feature that lets users bookmark repositories.
|
5
5
|
# Stars are shown next to repositories to show an approximate level of interest. # Stars have no effect on notifications or the activity feed.
|
6
|
-
class
|
6
|
+
class Activity::Starring < API
|
7
7
|
|
8
8
|
# List stargazers
|
9
9
|
#
|
10
10
|
# = Examples
|
11
11
|
# github = Github.new :user => 'user-name', :repo => 'repo-name'
|
12
|
-
# github.
|
13
|
-
# github.
|
12
|
+
# github.activity.starring.list
|
13
|
+
# github.activity.starring.list { |star| ... }
|
14
14
|
#
|
15
15
|
def list(user_name, repo_name, params={})
|
16
16
|
set :user => user_name, :repo => repo_name
|
@@ -27,13 +27,13 @@ module Github
|
|
27
27
|
#
|
28
28
|
# = Examples
|
29
29
|
# github = Github.new
|
30
|
-
# github.
|
30
|
+
# github.activity.starring.starred :user => 'user-name'
|
31
31
|
#
|
32
32
|
# List repos being starred by the authenticated user
|
33
33
|
#
|
34
34
|
# = Examples
|
35
35
|
# github = Github.new :oauth_token => '...'
|
36
|
-
# github.
|
36
|
+
# github.activity.starring.starred
|
37
37
|
#
|
38
38
|
def starred(*args)
|
39
39
|
params = args.extract_options!
|
@@ -54,7 +54,7 @@ module Github
|
|
54
54
|
#
|
55
55
|
# = Examples
|
56
56
|
# github = Github.new
|
57
|
-
# github.
|
57
|
+
# github.activity.starring.starring? 'user-name', 'repo-name'
|
58
58
|
#
|
59
59
|
def starring?(user_name, repo_name, params={})
|
60
60
|
assert_presence_of user_name, repo_name
|
@@ -71,7 +71,7 @@ module Github
|
|
71
71
|
#
|
72
72
|
# = Examples
|
73
73
|
# github = Github.new
|
74
|
-
# github.
|
74
|
+
# github.activity.starring.star 'user-name', 'repo-name'
|
75
75
|
#
|
76
76
|
def star(user_name, repo_name, params={})
|
77
77
|
set :user => user_name, :repo => repo_name
|
@@ -86,7 +86,7 @@ module Github
|
|
86
86
|
#
|
87
87
|
# = Examples
|
88
88
|
# github = Github.new
|
89
|
-
# github.
|
89
|
+
# github.activity.starring.unstar 'user-name', 'repo-name'
|
90
90
|
#
|
91
91
|
def unstar(user_name, repo_name, params={})
|
92
92
|
set :user => user_name, :repo => repo_name
|
@@ -95,5 +95,5 @@ module Github
|
|
95
95
|
delete_request("/user/starred/#{user_name}/#{repo_name}", params)
|
96
96
|
end
|
97
97
|
|
98
|
-
end #
|
98
|
+
end # Activity::Starring
|
99
99
|
end # Github
|
@@ -3,14 +3,14 @@
|
|
3
3
|
module Github
|
4
4
|
# Watching a Repository registers the user to receive notificactions on new
|
5
5
|
# discussions, as well as events in the user’s activity feed.
|
6
|
-
class
|
6
|
+
class Activity::Watching < API
|
7
7
|
|
8
8
|
# List repo watchers
|
9
9
|
#
|
10
10
|
# = Examples
|
11
11
|
# github = Github.new :user => 'user-name', :repo => 'repo-name'
|
12
|
-
# github.
|
13
|
-
# github.
|
12
|
+
# github.activity.watching.list
|
13
|
+
# github.activity.watching.list { |watcher| ... }
|
14
14
|
#
|
15
15
|
def list(user_name, repo_name, params={})
|
16
16
|
set :user => user_name, :repo => repo_name
|
@@ -27,13 +27,13 @@ module Github
|
|
27
27
|
#
|
28
28
|
# = Examples
|
29
29
|
# github = Github.new
|
30
|
-
# github.
|
30
|
+
# github.activity.watching.watched :user => 'user-name'
|
31
31
|
#
|
32
32
|
# List repos being watched by the authenticated user
|
33
33
|
#
|
34
34
|
# = Examples
|
35
35
|
# github = Github.new :oauth_token => '...'
|
36
|
-
# github.
|
36
|
+
# github.activity.watching.watched
|
37
37
|
#
|
38
38
|
def watched(*args)
|
39
39
|
params = args.extract_options!
|
@@ -53,7 +53,7 @@ module Github
|
|
53
53
|
# Returns <tt>true</tt> if this repo is watched by you, <tt>false</tt> otherwise
|
54
54
|
# = Examples
|
55
55
|
# github = Github.new
|
56
|
-
# github.
|
56
|
+
# github.activity.watching.watching? 'user-name', 'repo-name'
|
57
57
|
#
|
58
58
|
def watching?(user_name, repo_name, params={})
|
59
59
|
assert_presence_of user_name, repo_name
|
@@ -70,7 +70,7 @@ module Github
|
|
70
70
|
#
|
71
71
|
# = Examples
|
72
72
|
# github = Github.new
|
73
|
-
# github.
|
73
|
+
# github.activity.watching.watch 'user-name', 'repo-name'
|
74
74
|
#
|
75
75
|
def watch(user_name, repo_name, params={})
|
76
76
|
assert_presence_of user_name, repo_name
|
@@ -83,7 +83,7 @@ module Github
|
|
83
83
|
# You need to be authenticated to stop watching a repository.
|
84
84
|
# = Examples
|
85
85
|
# github = Github.new
|
86
|
-
# github.
|
86
|
+
# github.activity.watching.unwatch 'user-name', 'repo-name'
|
87
87
|
#
|
88
88
|
def unwatch(user_name, repo_name, params={})
|
89
89
|
assert_presence_of user_name, repo_name
|
@@ -91,5 +91,5 @@ module Github
|
|
91
91
|
delete_request("/user/subscriptions/#{user_name}/#{repo_name}", params)
|
92
92
|
end
|
93
93
|
|
94
|
-
end #
|
94
|
+
end # Activity::Watching
|
95
95
|
end # Github
|
data/lib/github_api/client.rb
CHANGED
@@ -3,10 +3,11 @@
|
|
3
3
|
module Github
|
4
4
|
class Client < API
|
5
5
|
|
6
|
-
#
|
7
|
-
#
|
8
|
-
|
9
|
-
|
6
|
+
# Serving up the ‘social’ in Social Coding™, the Activity APIs
|
7
|
+
# provide access to notifications, subscriptions, and timelines.
|
8
|
+
#
|
9
|
+
def activity(options = {})
|
10
|
+
@activity ||= ApiFactory.new 'Activity', options
|
10
11
|
end
|
11
12
|
|
12
13
|
def emojis(options = {})
|
@@ -60,6 +61,7 @@ module Github
|
|
60
61
|
|
61
62
|
# Many of the resources on the users API provide a shortcut for getting
|
62
63
|
# information about the currently authenticated user.
|
64
|
+
#
|
63
65
|
def users(options = {})
|
64
66
|
@users ||= ApiFactory.new 'Users', options
|
65
67
|
end
|
data/lib/github_api/repos.rb
CHANGED
@@ -16,9 +16,7 @@ module Github
|
|
16
16
|
:Keys => 'keys',
|
17
17
|
:Merging => 'merging',
|
18
18
|
:PubSubHubbub => 'pub_sub_hubbub',
|
19
|
-
:
|
20
|
-
:Statuses => 'statuses',
|
21
|
-
:Watching => 'watching'
|
19
|
+
:Statuses => 'statuses'
|
22
20
|
|
23
21
|
DEFAULT_REPO_OPTIONS = {
|
24
22
|
"homepage" => "https://github.com",
|
@@ -96,21 +94,11 @@ module Github
|
|
96
94
|
@pubsubhubbub ||= ApiFactory.new 'Repos::PubSubHubbub'
|
97
95
|
end
|
98
96
|
|
99
|
-
# Access to Repos::Starring API
|
100
|
-
def starring
|
101
|
-
@starring ||= ApiFactory.new 'Repos::Starring'
|
102
|
-
end
|
103
|
-
|
104
97
|
# Access to Repos::Statuses API
|
105
98
|
def statuses
|
106
99
|
@statuses ||= ApiFactory.new 'Repos::Statuses'
|
107
100
|
end
|
108
101
|
|
109
|
-
# Access to Repos::Watching API
|
110
|
-
def watching
|
111
|
-
@watching ||= ApiFactory.new 'Repos::Watching'
|
112
|
-
end
|
113
|
-
|
114
102
|
# List branches
|
115
103
|
#
|
116
104
|
# = Examples
|
@@ -162,7 +150,7 @@ module Github
|
|
162
150
|
#
|
163
151
|
# = Examples
|
164
152
|
# github = Github.new
|
165
|
-
# github.repos.create "name"
|
153
|
+
# github.repos.create "name": 'repo-name'
|
166
154
|
# "description": "This is your first repo",
|
167
155
|
# "homepage": "https://github.com",
|
168
156
|
# "private": false,
|
data/lib/github_api/response.rb
CHANGED
data/lib/github_api/version.rb
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"id": 1,
|
4
|
+
"repository": {
|
5
|
+
"id": 1296269,
|
6
|
+
"owner": {
|
7
|
+
"login": "octocat",
|
8
|
+
"id": 1,
|
9
|
+
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
|
10
|
+
"gravatar_id": "somehexcode",
|
11
|
+
"url": "https://api.github.com/users/octocat"
|
12
|
+
},
|
13
|
+
"name": "Hello-World",
|
14
|
+
"full_name": "octocat/Hello-World",
|
15
|
+
"description": "This your first repo!",
|
16
|
+
"private": false,
|
17
|
+
"fork": false,
|
18
|
+
"url": "https://api.github.com/repos/octocat/Hello-World",
|
19
|
+
"html_url": "https://github.com/octocat/Hello-World"
|
20
|
+
},
|
21
|
+
"subject": {
|
22
|
+
"title": "Greetings",
|
23
|
+
"url": "https://api.github.com/repos/pengwynn/octokit/issues/123",
|
24
|
+
"latest_comment_url": "https://api.github.com/repos/pengwynn/octokit/issues/comments/123"
|
25
|
+
},
|
26
|
+
"reason": "subscribed",
|
27
|
+
"unread": true,
|
28
|
+
"updated_at": "2012-09-25T07:54:41-07:00",
|
29
|
+
"last_read_at": "2012-09-25T07:54:41-07:00",
|
30
|
+
"url": "https://api.github.com/notifications/threads/1"
|
31
|
+
}
|
32
|
+
]
|
@@ -0,0 +1,32 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"id": 1,
|
4
|
+
"repository": {
|
5
|
+
"id": 1296269,
|
6
|
+
"owner": {
|
7
|
+
"login": "octocat",
|
8
|
+
"id": 1,
|
9
|
+
"avatar_url": "https://github.com/images/error/octocat_happy.gif",
|
10
|
+
"gravatar_id": "somehexcode",
|
11
|
+
"url": "https://api.github.com/users/octocat"
|
12
|
+
},
|
13
|
+
"name": "Hello-World",
|
14
|
+
"full_name": "octocat/Hello-World",
|
15
|
+
"description": "This your first repo!",
|
16
|
+
"private": false,
|
17
|
+
"fork": false,
|
18
|
+
"url": "https://api.github.com/repos/octocat/Hello-World",
|
19
|
+
"html_url": "https://github.com/octocat/Hello-World"
|
20
|
+
},
|
21
|
+
"subject": {
|
22
|
+
"title": "Greetings",
|
23
|
+
"url": "https://api.github.com/repos/pengwynn/octokit/issues/123",
|
24
|
+
"latest_comment_url": "https://api.github.com/repos/pengwynn/octokit/issues/comments/123"
|
25
|
+
},
|
26
|
+
"reason": "subscribed",
|
27
|
+
"unread": true,
|
28
|
+
"updated_at": "2012-09-25T07:54:41-07:00",
|
29
|
+
"last_read_at": "2012-09-25T07:54:41-07:00",
|
30
|
+
"url": "https://api.github.com/notifications/threads/1"
|
31
|
+
}
|
32
|
+
]
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Github::Activity, 'integration' do
|
6
|
+
|
7
|
+
after { reset_authentication_for subject }
|
8
|
+
|
9
|
+
its(:events) { should be_a Github::Activity::Events }
|
10
|
+
|
11
|
+
its(:notifications) { should be_a Github::Activity::Notifications }
|
12
|
+
|
13
|
+
its(:starring) { should be_a Github::Activity::Starring }
|
14
|
+
|
15
|
+
its(:watching) { should be_a Github::Activity::Watching }
|
16
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Github::Activity::Events, '#issue' do
|
6
|
+
let(:user) { 'peter-murach' }
|
7
|
+
let(:repo) { 'github' }
|
8
|
+
let(:request_path) { "/repos/#{user}/#{repo}/issues/events" }
|
9
|
+
let(:body) { fixture('events/events.json') }
|
10
|
+
let(:status) { 200 }
|
11
|
+
|
12
|
+
before {
|
13
|
+
stub_get(request_path).to_return(:body => body, :status => status,
|
14
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
15
|
+
}
|
16
|
+
|
17
|
+
after { reset_authentication_for subject }
|
18
|
+
|
19
|
+
context "resource found" do
|
20
|
+
it { should respond_to :issue_events }
|
21
|
+
|
22
|
+
it "should fail to get resource without username" do
|
23
|
+
expect { subject.issue nil, repo }.to raise_error(ArgumentError)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should get the resources" do
|
27
|
+
subject.issue user, repo
|
28
|
+
a_get(request_path).should have_been_made
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should return array of resources" do
|
32
|
+
events = subject.issue user, repo
|
33
|
+
events.should be_an Array
|
34
|
+
events.should have(1).items
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should be a mash type" do
|
38
|
+
events = subject.issue user, repo
|
39
|
+
events.first.should be_a Hashie::Mash
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should get event information" do
|
43
|
+
events = subject.issue user, repo
|
44
|
+
events.first.type.should == 'Event'
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should yield to a block" do
|
48
|
+
subject.should_receive(:issue).with(user, repo).and_yield('web')
|
49
|
+
subject.issue(user, repo) { |param| 'web' }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context "resource not found" do
|
54
|
+
let(:body) { '' }
|
55
|
+
let(:status) { [404, "Not Found"] }
|
56
|
+
|
57
|
+
it "should return 404 with a message 'Not Found'" do
|
58
|
+
expect {
|
59
|
+
subject.issue user, repo
|
60
|
+
}.to raise_error(Github::Error::NotFound)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end # issue
|
@@ -0,0 +1,61 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Github::Activity::Events, '#network' do
|
6
|
+
let(:user) { 'peter-murach' }
|
7
|
+
let(:repo) { 'github' }
|
8
|
+
let(:request_path) { "/networks/#{user}/#{repo}/events" }
|
9
|
+
let(:body) { fixture('events/events.json') }
|
10
|
+
let(:status) { 200 }
|
11
|
+
|
12
|
+
before {
|
13
|
+
stub_get(request_path).to_return(:body => body, :status => status,
|
14
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
15
|
+
}
|
16
|
+
|
17
|
+
after { reset_authentication_for subject }
|
18
|
+
|
19
|
+
context "resource found" do
|
20
|
+
it "should fail to get resource without username" do
|
21
|
+
expect { subject.network nil, repo }.to raise_error(ArgumentError)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should get the resources" do
|
25
|
+
subject.network user, repo
|
26
|
+
a_get(request_path).should have_been_made
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should return array of resources" do
|
30
|
+
events = subject.network user, repo
|
31
|
+
events.should be_an Array
|
32
|
+
events.should have(1).items
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should be a mash type" do
|
36
|
+
events = subject.network user, repo
|
37
|
+
events.first.should be_a Hashie::Mash
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should get event information" do
|
41
|
+
events = subject.network user, repo
|
42
|
+
events.first.type.should == 'Event'
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should yield to a block" do
|
46
|
+
subject.should_receive(:network).with(user, repo).and_yield('web')
|
47
|
+
subject.network(user, repo) { |param| 'web' }
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
context "resource not found" do
|
52
|
+
let(:body) { '' }
|
53
|
+
let(:status) { [404, "Not Found"] }
|
54
|
+
|
55
|
+
it "should return 404 with a message 'Not Found'" do
|
56
|
+
expect {
|
57
|
+
subject.network user, repo
|
58
|
+
}.to raise_error(Github::Error::NotFound)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end # network
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Github::Activity::Events, '#org' do
|
6
|
+
let(:org) { 'github' }
|
7
|
+
let(:request_path) { "/orgs/#{org}/events" }
|
8
|
+
let(:body) { fixture('events/events.json') }
|
9
|
+
let(:status) { 200 }
|
10
|
+
|
11
|
+
before {
|
12
|
+
stub_get(request_path).to_return(:body => body, :status => status,
|
13
|
+
:headers => {:content_type => "application/json; charset=utf-8"})
|
14
|
+
}
|
15
|
+
|
16
|
+
after { reset_authentication_for subject }
|
17
|
+
|
18
|
+
context "resource found" do
|
19
|
+
it { should respond_to :organization }
|
20
|
+
|
21
|
+
it "should fail to get resource without orgname" do
|
22
|
+
expect { subject.org nil }.to raise_error(ArgumentError)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should get the resources" do
|
26
|
+
subject.org org
|
27
|
+
a_get(request_path).should have_been_made
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should return array of resources" do
|
31
|
+
events = subject.org org
|
32
|
+
events.should be_an Array
|
33
|
+
events.should have(1).items
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should be a mash type" do
|
37
|
+
events = subject.org org
|
38
|
+
events.first.should be_a Hashie::Mash
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should get event information" do
|
42
|
+
events = subject.org org
|
43
|
+
events.first.type.should == 'Event'
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should yield to a block" do
|
47
|
+
subject.should_receive(:org).with(org).and_yield('web')
|
48
|
+
subject.org(org) { |param| 'web' }
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
context "resource not found" do
|
53
|
+
let(:body) { '' }
|
54
|
+
let(:status) { [404, "Not Found"] }
|
55
|
+
|
56
|
+
it "should return 404 with a message 'Not Found'" do
|
57
|
+
expect { subject.org org }.to raise_error(Github::Error::NotFound)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end # org
|