github_api_v3 0.0.1 → 0.0.2
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 +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
|
+
[](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
|