github_api_v3 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -1
- data/lib/github_api_v3/client.rb +70 -9
- data/lib/github_api_v3/version.rb +1 -1
- data/lib/github_api_v3.rb +6 -15
- data/spec/github_api_v3/client_spec.rb +3 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9169cd9f387218e0671168e9eb4a2f1d1f18e509
|
4
|
+
data.tar.gz: 3d0068723c6ced874e5ffb071a7484268c1b0fba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 167c034acff48603440160992bafe2bb2dfbff57c8aafc54c716167bad2a31c6dc8ea9d5e80a098a981fec3ceff0b2e47d21dbdc6238006122f873c6457d0e3a
|
7
|
+
data.tar.gz: 873d6d203131801d3c45b646031cc2373997c5ac1bb069579be2af3d3e2c146493b0dbce75b537ea1f6722df8c270e78f40db5f0c79f9d6781381d3322455626
|
data/README.md
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
# GitHub API v3
|
1
|
+
# GitHub API v3
|
2
|
+
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/github_api_v3.png)](http://badge.fury.io/rb/github_api_v3)
|
2
4
|
|
3
5
|
This is a simple wrapper for GitHub's v3 API. It is in the EARLY stages of development. Knowing a little about [GitHub's API](http://developer.github.com/) will aid in its use.
|
4
6
|
|
@@ -15,6 +17,10 @@ require 'github_api_v3'
|
|
15
17
|
# => true
|
16
18
|
```
|
17
19
|
|
20
|
+
### Unauthenticated Requests
|
21
|
+
|
22
|
+
There are multiple different unauthenticated requests to the API. Examples are shown below.
|
23
|
+
|
18
24
|
#### User
|
19
25
|
|
20
26
|
Returns a Hash containing information about a user.
|
data/lib/github_api_v3/client.rb
CHANGED
@@ -6,32 +6,76 @@ module GitHub
|
|
6
6
|
|
7
7
|
attr_reader :login, :access_token
|
8
8
|
|
9
|
-
def initialize(
|
10
|
-
@login = login
|
11
|
-
@access_token = access_token
|
9
|
+
def initialize(options={})
|
10
|
+
@login = options[:login]
|
11
|
+
@access_token = options[:access_token]
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
|
-
|
14
|
+
# Users
|
15
|
+
|
16
|
+
def user(username=nil)
|
17
|
+
if username
|
18
|
+
get "/users/#{username}"
|
19
|
+
else
|
20
|
+
get '/user', auth_params
|
21
|
+
end
|
16
22
|
end
|
17
23
|
|
18
24
|
def users
|
19
|
-
get
|
25
|
+
get '/users'
|
20
26
|
end
|
21
27
|
|
22
28
|
# Get emails for authenticated user
|
23
29
|
def emails
|
24
|
-
get
|
30
|
+
get '/user/emails', auth_params
|
31
|
+
end
|
32
|
+
|
33
|
+
def follow(username)
|
34
|
+
put "/user/following/#{username}", auth_params
|
25
35
|
end
|
26
36
|
|
27
|
-
def
|
28
|
-
get "/users/#{username}/
|
37
|
+
def follows?(username, target_username)
|
38
|
+
response = self.class.get "/users/#{username}/following/#{target_username}"
|
39
|
+
response.code == 204
|
40
|
+
end
|
41
|
+
|
42
|
+
def followers(username=nil)
|
43
|
+
if username
|
44
|
+
get "/users/#{username}/followers"
|
45
|
+
else
|
46
|
+
get '/user/followers', auth_params
|
47
|
+
end
|
29
48
|
end
|
30
49
|
|
31
50
|
def following(username)
|
32
51
|
get "/users/#{username}/following"
|
33
52
|
end
|
34
53
|
|
54
|
+
def following?(username)
|
55
|
+
response = self.class.get "/user/following/#{username}", query: auth_params
|
56
|
+
response.code == 204
|
57
|
+
end
|
58
|
+
|
59
|
+
def unfollow(username)
|
60
|
+
delete "/user/following/#{username}", auth_params
|
61
|
+
end
|
62
|
+
|
63
|
+
def keys(username=nil)
|
64
|
+
if username
|
65
|
+
get "/users/#{username}/keys"
|
66
|
+
else
|
67
|
+
get '/user/keys', auth_params
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def key(id)
|
72
|
+
get "/user/keys/#{id}", auth_params
|
73
|
+
end
|
74
|
+
|
75
|
+
def delete_key(id)
|
76
|
+
delete "/user/keys/#{id}", auth_params
|
77
|
+
end
|
78
|
+
|
35
79
|
def events(username)
|
36
80
|
get "/users/#{username}/events"
|
37
81
|
end
|
@@ -48,6 +92,23 @@ module GitHub
|
|
48
92
|
response.parsed_response
|
49
93
|
end
|
50
94
|
|
95
|
+
def put(url, params={})
|
96
|
+
response = self.class.put url, query: params
|
97
|
+
handle_response(response)
|
98
|
+
response.parsed_response
|
99
|
+
end
|
100
|
+
|
101
|
+
def post(url, params={})
|
102
|
+
response = self.class.post url, query: params
|
103
|
+
response.code
|
104
|
+
end
|
105
|
+
|
106
|
+
def delete(url, params={})
|
107
|
+
response = self.class.delete url, query: params
|
108
|
+
handle_response(response)
|
109
|
+
response.parsed_response
|
110
|
+
end
|
111
|
+
|
51
112
|
def auth_params
|
52
113
|
@login.nil? ? {} : { login: @login, access_token: @access_token }
|
53
114
|
end
|
data/lib/github_api_v3.rb
CHANGED
@@ -8,24 +8,15 @@ module GitHub
|
|
8
8
|
|
9
9
|
class << self
|
10
10
|
|
11
|
-
def
|
12
|
-
Client.new
|
11
|
+
def client
|
12
|
+
@client = Client.new unless @client
|
13
|
+
@client
|
13
14
|
end
|
14
15
|
|
15
|
-
|
16
|
-
Client.new.users
|
17
|
-
end
|
18
|
-
|
19
|
-
def followers(username=nil)
|
20
|
-
Client.new.followers(username)
|
21
|
-
end
|
22
|
-
|
23
|
-
def events(username)
|
24
|
-
Client.new.events(username)
|
25
|
-
end
|
16
|
+
private
|
26
17
|
|
27
|
-
def
|
28
|
-
|
18
|
+
def method_missing(method_name, *args, &block)
|
19
|
+
client.send(method_name, *args, &block)
|
29
20
|
end
|
30
21
|
|
31
22
|
end
|
@@ -6,10 +6,13 @@ describe GitHub::Client do
|
|
6
6
|
|
7
7
|
subject { GitHub }
|
8
8
|
|
9
|
+
it { should respond_to :login }
|
10
|
+
it { should respond_to :access_token }
|
9
11
|
it { should respond_to :user }
|
10
12
|
it { should respond_to :events }
|
11
13
|
it { should respond_to :followers }
|
12
14
|
it { should respond_to :repos }
|
15
|
+
it { should respond_to :emails }
|
13
16
|
|
14
17
|
describe 'default attributes' do
|
15
18
|
it 'must include httparty' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: github_api_v3
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Casey Scarborough
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-08-
|
11
|
+
date: 2013-08-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|