github-v3-api 0.0.5 → 0.1.0

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.5
1
+ 0.1.0
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{github-v3-api}
8
- s.version = "0.0.5"
7
+ s.name = "github-v3-api"
8
+ s.version = "0.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["John Wilger"]
12
- s.date = %q{2011-07-03}
13
- s.description = %q{Ponies}
14
- s.email = %q{johnwilger@gmail.com}
12
+ s.date = "2011-10-18"
13
+ s.description = "Ponies"
14
+ s.email = "johnwilger@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
17
  "README.rdoc"
@@ -31,22 +31,26 @@ Gem::Specification.new do |s|
31
31
  "lib/github-v3-api.rb",
32
32
  "lib/github_v3_api.rb",
33
33
  "lib/github_v3_api/entity.rb",
34
+ "lib/github_v3_api/issue.rb",
35
+ "lib/github_v3_api/issues_api.rb",
34
36
  "lib/github_v3_api/org.rb",
35
37
  "lib/github_v3_api/orgs_api.rb",
36
38
  "lib/github_v3_api/repo.rb",
37
39
  "lib/github_v3_api/repos_api.rb",
38
40
  "spec/github_v3_api_spec.rb",
41
+ "spec/issue_spec.rb",
42
+ "spec/issues_api_spec.rb",
39
43
  "spec/org_spec.rb",
40
44
  "spec/orgs_api_spec.rb",
41
45
  "spec/repo_spec.rb",
42
46
  "spec/repos_api_spec.rb",
43
47
  "spec/spec_helper.rb"
44
48
  ]
45
- s.homepage = %q{http://github.com/jwilger/github-v3-api}
49
+ s.homepage = "http://github.com/jwilger/github-v3-api"
46
50
  s.licenses = ["MIT"]
47
51
  s.require_paths = ["lib"]
48
- s.rubygems_version = %q{1.6.2}
49
- s.summary = %q{Ruby Client for the GitHub v3 API}
52
+ s.rubygems_version = "1.8.10"
53
+ s.summary = "Ruby Client for the GitHub v3 API"
50
54
 
51
55
  if s.respond_to? :specification_version then
52
56
  s.specification_version = 3
@@ -1,6 +1,8 @@
1
1
  require 'rest-client'
2
2
  require 'json'
3
3
  require 'github_v3_api/entity'
4
+ require 'github_v3_api/issues_api'
5
+ require 'github_v3_api/issue'
4
6
  require 'github_v3_api/orgs_api'
5
7
  require 'github_v3_api/org'
6
8
  require 'github_v3_api/repos_api'
@@ -23,6 +25,9 @@ class GitHubV3API
23
25
  # Raised when an API request uses an invalid access token
24
26
  Unauthorized = Class.new(RuntimeError)
25
27
 
28
+ # Raised when an API request is missing required data
29
+ MissingRequiredData = Class.new(RuntimeError)
30
+
26
31
  # Returns a GitHubV3API instance that is able to access github with the
27
32
  # +access_token+ owner's authorization.
28
33
  #
@@ -47,8 +52,43 @@ class GitHubV3API
47
52
  ReposAPI.new(self)
48
53
  end
49
54
 
50
- def get(path) #:nodoc:
55
+ # Entry-point for access to the GitHub Issues API
56
+ #
57
+ # Returns an instance of GitHubV3API::IssuesAPI that will use the access_token
58
+ # associated with this instance
59
+ def issues
60
+ IssuesAPI.new(self)
61
+ end
62
+
63
+ def get(path, params={}) #:nodoc:
51
64
  result = RestClient.get("https://api.github.com" + path,
65
+ {:accept => :json,
66
+ :authorization => "token #{@access_token}"}.merge({:params => params}))
67
+ JSON.parse(result)
68
+ rescue RestClient::Unauthorized
69
+ raise Unauthorized, "The access token is invalid according to GitHub"
70
+ end
71
+
72
+ def post(path, params={}) #:nodoc:
73
+ result = RestClient.post("https://api.github.com" + path, JSON.generate(params),
74
+ {:accept => :json,
75
+ :authorization => "token #{@access_token}"})
76
+ JSON.parse(result)
77
+ rescue RestClient::Unauthorized
78
+ raise Unauthorized, "The access token is invalid according to GitHub"
79
+ end
80
+
81
+ def patch(path, params={}) #:nodoc:
82
+ result = RestClient.post("https://api.github.com" + path, JSON.generate(params),
83
+ {:accept => :json,
84
+ :authorization => "token #{@access_token}"})
85
+ JSON.parse(result)
86
+ rescue RestClient::Unauthorized
87
+ raise Unauthorized, "The access token is invalid according to GitHub"
88
+ end
89
+
90
+ def delete(path) #:nodoc:
91
+ result = RestClient.delete("https://api.github.com" + path,
52
92
  {:accept => :json,
53
93
  :authorization => "token #{@access_token}"})
54
94
  JSON.parse(result)
@@ -0,0 +1,11 @@
1
+ # See GitHubV3API documentation in lib/github_v3_api.rb
2
+ class GitHubV3API
3
+ # Represents a single GitHub Issue and provides access to its data attributes.
4
+ class Issue < Entity
5
+ attr_reader :url, :html_url, :number, :state, :title, :body, :user,
6
+ :labels, :assignee, :milestone, :comments, :pull_request,
7
+ :closed_at, :created_at, :updated_at
8
+
9
+
10
+ end
11
+ end
@@ -0,0 +1,82 @@
1
+ # See GitHubV3API documentation in lib/github_v3_api.rb
2
+ class GitHubV3API
3
+ # Provides access to the GitHub Issues API (http://developer.github.com/v3/issues/)
4
+ #
5
+ # example:
6
+ #
7
+ # api = GitHubV3API.new(ACCESS_TOKEN)
8
+ #
9
+ # # get list of your issues
10
+ # my_issues = api.issues.list
11
+ # #=> returns an array of GitHubV3API::Issue instances
12
+ #
13
+ # # get list of issues for a repo
14
+ # repo_issues = api.issues.list({:user => 'octocat', :repo => 'hello-world'})
15
+ # #=> returns an array of GitHubV3API::Issue instances
16
+ #
17
+ # issue = api.issues.get('octocat', 'hello-world', '1234')
18
+ # #=> returns an instance of GitHubV3API::Issue
19
+ #
20
+ # issue.title
21
+ # #=> 'omgbbq'
22
+ #
23
+ class IssuesAPI
24
+ # Typically not used directly. Use GitHubV3API#issues instead.
25
+ #
26
+ # +connection+:: an instance of GitHubV3API
27
+ def initialize(connection)
28
+ @connection = connection
29
+ end
30
+
31
+ # Returns an array of GitHubV3API::Issue instances representing a
32
+ # user's issues or issues for a repo
33
+ def list(options=nil, params={})
34
+ path = if options && options[:user] && options[:repo]
35
+ "/repos/#{options[:user]}/#{options[:repo]}/issues"
36
+ else
37
+ '/issues'
38
+ end
39
+
40
+ @connection.get(path, params).map do |issue_data|
41
+ GitHubV3API::Issue.new(self, issue_data)
42
+ end
43
+ end
44
+
45
+ # Returns a GitHubV3API::Issue instance for the specified +user+,
46
+ # +repo_name+, and +id+.
47
+ #
48
+ # +user+:: the string ID of the user, e.g. "octocat"
49
+ # +repo_name+:: the string ID of the repository, e.g. "hello-world"
50
+ # +id+:: the integer ID of the issue, e.g. 42
51
+ def get(user, repo_name, id, params={})
52
+ issue_data = @connection.get("/repos/#{user}/#{repo_name}/issues/#{id.to_s}", params)
53
+ GitHubV3API::Issue.new_with_all_data(self, issue_data)
54
+ rescue RestClient::ResourceNotFound
55
+ raise NotFound, "The issue #{user}/#{repo_name}/issues/#{id} does not exist or is not visible to the user."
56
+ end
57
+
58
+ # Returns a GitHubV3API::Issue instance representing the issue
59
+ # that it creates
60
+ #
61
+ # +user+:: the string ID of the user, e.g. "octocat"
62
+ # +repo_name+:: the string ID of the repository, e.g. "hello-world"
63
+ # +data+:: the hash DATA with attributes for the issue, e.g. {:title => "omgbbq"}
64
+ def create(user, repo_name, data={})
65
+ raise MissingRequiredData, "Title is required to create a new issue" unless data[:title]
66
+ issue_data = @connection.post("/repos/#{user}/#{repo_name}/issues", data)
67
+ GitHubV3API::Issue.new_with_all_data(self, issue_data)
68
+ end
69
+
70
+ # Returns a GitHubV3API::Issue instance representing the issue
71
+ # that it updated
72
+ #
73
+ # +user+:: the string ID of the user, e.g. "octocat"
74
+ # +repo_name+:: the string ID of the repository, e.g. "hello-world"
75
+ # +id+:: the integer ID of the issue, e.g. 42
76
+ # +data+:: the hash with attributes for the issue, e.g. {:body => "lol, wtf"}
77
+ def update(user, repo_name, id, data={})
78
+ issue_data = @connection.patch("/repos/#{user}/#{repo_name}/issues/#{id.to_s}", data)
79
+ GitHubV3API::Issue.new_with_all_data(self, issue_data)
80
+ end
81
+ end
82
+ end
@@ -10,7 +10,7 @@ class GitHubV3API
10
10
  # repos = api.repos.list
11
11
  # #=> returns an array of GitHubV3API::Repo instances
12
12
  #
13
- # repo = api.repo.get('octocat', 'hello-world')
13
+ # repo = api.repos.get('octocat', 'hello-world')
14
14
  # #=> returns an instance of GitHubV3API::Repo
15
15
  #
16
16
  # repo.name
@@ -19,10 +19,17 @@ describe GitHubV3API do
19
19
  end
20
20
  end
21
21
 
22
+ describe "#issues" do
23
+ it "returns an instance of GitHubV3API::IssuesAPI" do
24
+ api = GitHubV3API.new('abcde')
25
+ api.issues.should be_kind_of GitHubV3API::IssuesAPI
26
+ end
27
+ end
28
+
22
29
  describe '#get' do
23
30
  it 'does a get request to the specified path at the GitHub API server and adds the access token' do
24
31
  RestClient.should_receive(:get) \
25
- .with('https://api.github.com/some/path', {:accept => :json, :authorization => 'token abcde'}) \
32
+ .with('https://api.github.com/some/path', {:accept => :json, :authorization => 'token abcde', :params => {}}) \
26
33
  .and_return('{}')
27
34
  api = GitHubV3API.new('abcde')
28
35
  api.get('/some/path')
@@ -40,4 +47,38 @@ describe GitHubV3API do
40
47
  lambda { api.get('/something') }.should raise_error(GitHubV3API::Unauthorized)
41
48
  end
42
49
  end
50
+
51
+ describe "#post" do
52
+ it "does a post request to the specified path at the github server, adds token, and payload as json" do
53
+ data = {:title => 'omgbbq'}
54
+ json = JSON.generate(data)
55
+ RestClient.should_receive(:post) \
56
+ .with('https://api.github.com/some/path', json, {:accept => :json, :authorization => 'token abcde'}) \
57
+ .and_return('{}')
58
+ api = GitHubV3API.new('abcde')
59
+ api.post('/some/path', data)
60
+ end
61
+ end
62
+
63
+ describe "#patch" do
64
+ it "does a post request to the specified path at the github server, adds token, and payload as json" do
65
+ data = {:title => 'omgbbq'}
66
+ json = JSON.generate(data)
67
+ RestClient.should_receive(:post) \
68
+ .with('https://api.github.com/some/path', json, {:accept => :json, :authorization => 'token abcde'}) \
69
+ .and_return('{}')
70
+ api = GitHubV3API.new('abcde')
71
+ api.patch('/some/path', data)
72
+ end
73
+ end
74
+
75
+ describe "#delete" do
76
+ it 'does a delete request to the specified path at the GitHub API server and adds the access token' do
77
+ RestClient.should_receive(:delete) \
78
+ .with('https://api.github.com/some/path', {:accept => :json, :authorization => 'token abcde'}) \
79
+ .and_return('{}')
80
+ api = GitHubV3API.new('abcde')
81
+ api.delete('/some/path')
82
+ end
83
+ end
43
84
  end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe GitHubV3API::Issue do
4
+ describe 'attr_readers' do
5
+ it 'should define attr_readers that pull values from the issue data' do
6
+ fields = %w(url html_url number state title body user labels assignee
7
+ milestone comments pull_request closed_at created_at updated_at)
8
+ fields.each do |f|
9
+ repo = GitHubV3API::Issue.new_with_all_data(stub('api'), {f.to_s => 'foo'})
10
+ repo.methods.should include(f.to_sym)
11
+ repo.send(f).should == 'foo'
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,76 @@
1
+ require 'spec_helper'
2
+
3
+ describe GitHubV3API::IssuesAPI do
4
+ describe "#list" do
5
+ context "options = nil" do
6
+ it "returns issues for a user" do
7
+ connection = mock(GitHubV3API)
8
+ connection.should_receive(:get).with('/issues', {}).and_return([:issue_hash1, :issue_hash2])
9
+ api = GitHubV3API::IssuesAPI.new(connection)
10
+ GitHubV3API::Issue.should_receive(:new).with(api, :issue_hash1).and_return(:issue1)
11
+ GitHubV3API::Issue.should_receive(:new).with(api, :issue_hash2).and_return(:issue2)
12
+ issues = api.list
13
+ issues.should == [:issue1, :issue2]
14
+ end
15
+ end
16
+
17
+ context "options = {:user => 'octocat', :repo => 'hello-world'}" do
18
+ it "returns issues for a repo" do
19
+ connection = mock(GitHubV3API)
20
+ connection.should_receive(:get).with("/repos/octocat/hello-world/issues", {}).and_return([:issue_hash1, :issue_hash2])
21
+ api = GitHubV3API::IssuesAPI.new(connection)
22
+ GitHubV3API::Issue.should_receive(:new).with(api, :issue_hash1).and_return(:issue1)
23
+ GitHubV3API::Issue.should_receive(:new).with(api, :issue_hash2).and_return(:issue2)
24
+ issues = api.list({:user => 'octocat', :repo => 'hello-world'})
25
+ issues.should == [:issue1, :issue2]
26
+ end
27
+ end
28
+ end
29
+
30
+ describe '#get' do
31
+ it 'returns a fully-hydrated Issue object for the specified user, repo, and issue id' do
32
+ connection = mock(GitHubV3API)
33
+ connection.should_receive(:get).with('/repos/octocat/hello-world/issues/1234', {}).and_return(:issue_hash)
34
+ api = GitHubV3API::IssuesAPI.new(connection)
35
+ GitHubV3API::Issue.should_receive(:new_with_all_data).with(api, :issue_hash).and_return(:issue)
36
+ api.get('octocat', 'hello-world', 1234).should == :issue
37
+ end
38
+
39
+ it 'raises GitHubV3API::NotFound instead of a RestClient::ResourceNotFound' do
40
+ connection = mock(GitHubV3API)
41
+ connection.should_receive(:get) \
42
+ .and_raise(RestClient::ResourceNotFound)
43
+ api = GitHubV3API::IssuesAPI.new(connection)
44
+ lambda { api.get('octocat', 'hello-world', 4321) }.should raise_error(GitHubV3API::NotFound)
45
+ end
46
+ end
47
+
48
+ describe "#create" do
49
+ it 'returns a fully-hydrated Issue object for the specified user, repo, and issue that was created' do
50
+ connection = mock(GitHubV3API)
51
+ data = {:title => "omgbbq"}
52
+ connection.should_receive(:post).with('/repos/octocat/hello-world/issues', data).and_return(:issue_hash)
53
+ api = GitHubV3API::IssuesAPI.new(connection)
54
+ GitHubV3API::Issue.should_receive(:new_with_all_data).with(api, :issue_hash).and_return(:issue)
55
+ api.create('octocat', 'hello-world', data).should == :issue
56
+ end
57
+
58
+ it "raises GitHubV3API::MissingRequiredData when data[:title] is missing" do
59
+ connection = mock(GitHubV3API)
60
+ connection.should_not_receive(:post)
61
+ api = GitHubV3API::IssuesAPI.new(connection)
62
+ lambda { api.create('octocat', 'hello-world', {}) }.should raise_error(GitHubV3API::MissingRequiredData)
63
+ end
64
+ end
65
+
66
+ describe "#update" do
67
+ it 'returns a fully-hydrated Issue object for the specified user, repo, and issue that was updated' do
68
+ connection = mock(GitHubV3API)
69
+ data = {:body => "lol, wtf"}
70
+ connection.should_receive(:patch).with('/repos/octocat/hello-world/issues/1234', data).and_return(:issue_hash)
71
+ api = GitHubV3API::IssuesAPI.new(connection)
72
+ GitHubV3API::Issue.should_receive(:new_with_all_data).with(api, :issue_hash).and_return(:issue)
73
+ api.update('octocat', 'hello-world', 1234, data).should == :issue
74
+ end
75
+ end
76
+ end
@@ -3,10 +3,6 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
  require 'rspec'
4
4
  require 'github_v3_api'
5
5
 
6
- # Requires supporting files with custom matchers and macros, etc,
7
- # in ./support/ and its subdirectories.
8
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
-
10
6
  RSpec.configure do |config|
11
-
7
+
12
8
  end
metadata CHANGED
@@ -1,116 +1,112 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: github-v3-api
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
4
5
  prerelease:
5
- version: 0.0.5
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - John Wilger
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-07-03 00:00:00 -07:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2011-10-18 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: rest-client
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2159155400 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
18
+ requirements:
21
19
  - - ~>
22
- - !ruby/object:Gem::Version
20
+ - !ruby/object:Gem::Version
23
21
  version: 1.6.3
24
22
  type: :runtime
25
23
  prerelease: false
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
24
+ version_requirements: *2159155400
25
+ - !ruby/object:Gem::Dependency
28
26
  name: json
29
- requirement: &id002 !ruby/object:Gem::Requirement
27
+ requirement: &2159154920 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
29
+ requirements:
32
30
  - - ~>
33
- - !ruby/object:Gem::Version
31
+ - !ruby/object:Gem::Version
34
32
  version: 1.5.3
35
33
  type: :runtime
36
34
  prerelease: false
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
35
+ version_requirements: *2159154920
36
+ - !ruby/object:Gem::Dependency
39
37
  name: rspec
40
- requirement: &id003 !ruby/object:Gem::Requirement
38
+ requirement: &2159154440 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
40
+ requirements:
43
41
  - - ~>
44
- - !ruby/object:Gem::Version
42
+ - !ruby/object:Gem::Version
45
43
  version: 2.3.0
46
44
  type: :development
47
45
  prerelease: false
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
46
+ version_requirements: *2159154440
47
+ - !ruby/object:Gem::Dependency
50
48
  name: bundler
51
- requirement: &id004 !ruby/object:Gem::Requirement
49
+ requirement: &2159153960 !ruby/object:Gem::Requirement
52
50
  none: false
53
- requirements:
51
+ requirements:
54
52
  - - ~>
55
- - !ruby/object:Gem::Version
53
+ - !ruby/object:Gem::Version
56
54
  version: 1.0.0
57
55
  type: :development
58
56
  prerelease: false
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
57
+ version_requirements: *2159153960
58
+ - !ruby/object:Gem::Dependency
61
59
  name: jeweler
62
- requirement: &id005 !ruby/object:Gem::Requirement
60
+ requirement: &2159153480 !ruby/object:Gem::Requirement
63
61
  none: false
64
- requirements:
62
+ requirements:
65
63
  - - ~>
66
- - !ruby/object:Gem::Version
64
+ - !ruby/object:Gem::Version
67
65
  version: 1.6.0
68
66
  type: :development
69
67
  prerelease: false
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
68
+ version_requirements: *2159153480
69
+ - !ruby/object:Gem::Dependency
72
70
  name: rcov
73
- requirement: &id006 !ruby/object:Gem::Requirement
71
+ requirement: &2159153000 !ruby/object:Gem::Requirement
74
72
  none: false
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- version: "0"
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
79
77
  type: :development
80
78
  prerelease: false
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
79
+ version_requirements: *2159153000
80
+ - !ruby/object:Gem::Dependency
83
81
  name: reek
84
- requirement: &id007 !ruby/object:Gem::Requirement
82
+ requirement: &2159152520 !ruby/object:Gem::Requirement
85
83
  none: false
86
- requirements:
84
+ requirements:
87
85
  - - ~>
88
- - !ruby/object:Gem::Version
86
+ - !ruby/object:Gem::Version
89
87
  version: 1.2.8
90
88
  type: :development
91
89
  prerelease: false
92
- version_requirements: *id007
93
- - !ruby/object:Gem::Dependency
90
+ version_requirements: *2159152520
91
+ - !ruby/object:Gem::Dependency
94
92
  name: roodi
95
- requirement: &id008 !ruby/object:Gem::Requirement
93
+ requirement: &2159152040 !ruby/object:Gem::Requirement
96
94
  none: false
97
- requirements:
95
+ requirements:
98
96
  - - ~>
99
- - !ruby/object:Gem::Version
97
+ - !ruby/object:Gem::Version
100
98
  version: 2.1.0
101
99
  type: :development
102
100
  prerelease: false
103
- version_requirements: *id008
101
+ version_requirements: *2159152040
104
102
  description: Ponies
105
103
  email: johnwilger@gmail.com
106
104
  executables: []
107
-
108
105
  extensions: []
109
-
110
- extra_rdoc_files:
106
+ extra_rdoc_files:
111
107
  - LICENSE.txt
112
108
  - README.rdoc
113
- files:
109
+ files:
114
110
  - .document
115
111
  - .rspec
116
112
  - .rvmrc
@@ -125,46 +121,46 @@ files:
125
121
  - lib/github-v3-api.rb
126
122
  - lib/github_v3_api.rb
127
123
  - lib/github_v3_api/entity.rb
124
+ - lib/github_v3_api/issue.rb
125
+ - lib/github_v3_api/issues_api.rb
128
126
  - lib/github_v3_api/org.rb
129
127
  - lib/github_v3_api/orgs_api.rb
130
128
  - lib/github_v3_api/repo.rb
131
129
  - lib/github_v3_api/repos_api.rb
132
130
  - spec/github_v3_api_spec.rb
131
+ - spec/issue_spec.rb
132
+ - spec/issues_api_spec.rb
133
133
  - spec/org_spec.rb
134
134
  - spec/orgs_api_spec.rb
135
135
  - spec/repo_spec.rb
136
136
  - spec/repos_api_spec.rb
137
137
  - spec/spec_helper.rb
138
- has_rdoc: true
139
138
  homepage: http://github.com/jwilger/github-v3-api
140
- licenses:
139
+ licenses:
141
140
  - MIT
142
141
  post_install_message:
143
142
  rdoc_options: []
144
-
145
- require_paths:
143
+ require_paths:
146
144
  - lib
147
- required_ruby_version: !ruby/object:Gem::Requirement
145
+ required_ruby_version: !ruby/object:Gem::Requirement
148
146
  none: false
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- hash: -4451428935810272395
153
- segments:
147
+ requirements:
148
+ - - ! '>='
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ segments:
154
152
  - 0
155
- version: "0"
156
- required_rubygems_version: !ruby/object:Gem::Requirement
153
+ hash: 3092793002911622780
154
+ required_rubygems_version: !ruby/object:Gem::Requirement
157
155
  none: false
158
- requirements:
159
- - - ">="
160
- - !ruby/object:Gem::Version
161
- version: "0"
156
+ requirements:
157
+ - - ! '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
162
160
  requirements: []
163
-
164
161
  rubyforge_project:
165
- rubygems_version: 1.6.2
162
+ rubygems_version: 1.8.10
166
163
  signing_key:
167
164
  specification_version: 3
168
165
  summary: Ruby Client for the GitHub v3 API
169
166
  test_files: []
170
-