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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b1484792ee09d3b78a77bbb52789a41c0513c41e
4
- data.tar.gz: f4975ee821dbf872a3bd4cc0f6f63dc6190d9eee
3
+ metadata.gz: 9169cd9f387218e0671168e9eb4a2f1d1f18e509
4
+ data.tar.gz: 3d0068723c6ced874e5ffb071a7484268c1b0fba
5
5
  SHA512:
6
- metadata.gz: 91a3f5ac2a6debb3d6dcd7b14098378c55912c9098d5648b899a4ab632ce61a44f701bfa8eb2f563380334265810d71e7cd2d9cc323762a446d6907b9f3a54ae
7
- data.tar.gz: a4bfafbe187cbbc114156d23b7ee2a4162abb6d1c01bce6595664dece25a4b4621641a476ea6c6cdbeeb843d4a29e31667145c53aea428e5e5c54ec5abfcf30d
6
+ metadata.gz: 167c034acff48603440160992bafe2bb2dfbff57c8aafc54c716167bad2a31c6dc8ea9d5e80a098a981fec3ceff0b2e47d21dbdc6238006122f873c6457d0e3a
7
+ data.tar.gz: 873d6d203131801d3c45b646031cc2373997c5ac1bb069579be2af3d3e2c146493b0dbce75b537ea1f6722df8c270e78f40db5f0c79f9d6781381d3322455626
data/README.md CHANGED
@@ -1,4 +1,6 @@
1
- # GitHub API v3 Wrapper
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.
@@ -6,32 +6,76 @@ module GitHub
6
6
 
7
7
  attr_reader :login, :access_token
8
8
 
9
- def initialize(login=nil, access_token=nil)
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
- def user(username)
15
- get "/users/#{username}"
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 "/users"
25
+ get '/users'
20
26
  end
21
27
 
22
28
  # Get emails for authenticated user
23
29
  def emails
24
- get "/user/emails", auth_params
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 followers(username)
28
- get "/users/#{username}/followers"
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
@@ -1,3 +1,3 @@
1
1
  module GitHub
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
data/lib/github_api_v3.rb CHANGED
@@ -8,24 +8,15 @@ module GitHub
8
8
 
9
9
  class << self
10
10
 
11
- def user(username)
12
- Client.new.user(username)
11
+ def client
12
+ @client = Client.new unless @client
13
+ @client
13
14
  end
14
15
 
15
- def users
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 repos(username)
28
- Client.new.repos(username)
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.1
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 00:00:00.000000000 Z
11
+ date: 2013-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler