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 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