ghee 0.9.6 → 0.9.7
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +5 -0
- data/ghee.gemspec +5 -4
- data/lib/ghee.rb +13 -8
- data/lib/ghee/api/forks.rb +0 -1
- data/lib/ghee/api/issues.rb +5 -3
- data/lib/ghee/api/repos.rb +7 -3
- data/lib/ghee/api/search.rb +40 -0
- data/lib/ghee/connection.rb +6 -1
- data/lib/ghee/resource_proxy.rb +1 -0
- data/lib/ghee/version.rb +1 -1
- data/spec/ghee/api/events_spec.rb +2 -2
- data/spec/ghee/api/gists_spec.rb +1 -1
- data/spec/ghee/api/gitdata_spec.rb +1 -1
- data/spec/ghee/api/issues_spec.rb +19 -1
- data/spec/ghee/api/milestones_spec.rb +5 -5
- data/spec/ghee/api/repos_spec.rb +1 -1
- data/spec/ghee/api/search_spec.rb +20 -0
- data/spec/ghee/connection_spec.rb +6 -6
- data/spec/ghee/memory_cache_spec.rb +42 -0
- data/spec/ghee_spec.rb +0 -1
- data/spec/spec_helper.rb +6 -0
- metadata +50 -34
data/README.md
CHANGED
@@ -18,6 +18,11 @@ Create an OAuth access token:
|
|
18
18
|
user_name, password, scopes = "rauhryan", "secret", ["user","repo"]
|
19
19
|
token = Ghee.create_token(user_name, password, scopes)
|
20
20
|
|
21
|
+
Create a client for github enterprise
|
22
|
+
|
23
|
+
gh = Ghee.access_token("your_token","https://foo.com")
|
24
|
+
gh = Ghee.basic_auth("your_user", "your_pass", "https://foo.com")
|
25
|
+
|
21
26
|
## Gists
|
22
27
|
|
23
28
|
### Usage
|
data/ghee.gemspec
CHANGED
@@ -18,10 +18,10 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
|
-
s.
|
22
|
-
s.
|
23
|
-
s.
|
24
|
-
s.
|
21
|
+
s.add_dependency 'faraday', '~> 0.8'
|
22
|
+
s.add_dependency 'faraday_middleware', '~> 0.9'
|
23
|
+
s.add_dependency 'hashie', '~> 1.2'
|
24
|
+
s.add_dependency 'multi_json', '~> 1.3'
|
25
25
|
s.add_development_dependency 'rake'
|
26
26
|
s.add_development_dependency 'json_pure'
|
27
27
|
s.add_development_dependency 'rspec', '~>2.9.0'
|
@@ -29,4 +29,5 @@ Gem::Specification.new do |s|
|
|
29
29
|
s.add_development_dependency 'vcr'
|
30
30
|
s.add_development_dependency 'ZenTest'
|
31
31
|
s.add_development_dependency 'autotest-growl'
|
32
|
+
s.add_development_dependency 'uuidtools'
|
32
33
|
end
|
data/lib/ghee.rb
CHANGED
@@ -24,6 +24,7 @@ require 'ghee/api/watchers'
|
|
24
24
|
require 'ghee/api/emails'
|
25
25
|
require 'ghee/api/followers'
|
26
26
|
require 'ghee/api/pulls'
|
27
|
+
require 'ghee/api/search'
|
27
28
|
|
28
29
|
class Ghee
|
29
30
|
attr_reader :connection
|
@@ -40,9 +41,9 @@ class Ghee
|
|
40
41
|
#
|
41
42
|
# Access_token - String of the access_token
|
42
43
|
#
|
43
|
-
def initialize(options = nil)
|
44
|
+
def initialize(options = nil, &block)
|
44
45
|
|
45
|
-
return @connection = Ghee::Connection.new(options) unless options.nil?
|
46
|
+
return @connection = Ghee::Connection.new(options, &block) unless options.nil?
|
46
47
|
|
47
48
|
begin
|
48
49
|
token = ENV["GH_TOKEN"] || `git config github.token`
|
@@ -53,16 +54,20 @@ class Ghee
|
|
53
54
|
end
|
54
55
|
end
|
55
56
|
|
56
|
-
def self.basic_auth(user_name, password)
|
57
|
-
|
57
|
+
def self.basic_auth(user_name, password, api_url = nil)
|
58
|
+
options = { :basic_auth => {:user_name => user_name, :password => password} }
|
59
|
+
options[:api_url] = api_url if api_url
|
60
|
+
Ghee.new options
|
58
61
|
end
|
59
62
|
|
60
|
-
def self.access_token(token)
|
61
|
-
|
63
|
+
def self.access_token(token, api_url = nil)
|
64
|
+
options = { :access_token => token }
|
65
|
+
options[:api_url] = api_url if api_url
|
66
|
+
Ghee.new options
|
62
67
|
end
|
63
68
|
|
64
|
-
def self.create_token(user_name, password, scopes)
|
65
|
-
auth = Ghee.basic_auth(user_name, password).authorizations.create({
|
69
|
+
def self.create_token(user_name, password, scopes, api_url = nil)
|
70
|
+
auth = Ghee.basic_auth(user_name, password, api_url).authorizations.create({
|
66
71
|
:scopes => scopes})
|
67
72
|
auth["token"]
|
68
73
|
end
|
data/lib/ghee/api/forks.rb
CHANGED
data/lib/ghee/api/issues.rb
CHANGED
@@ -69,6 +69,7 @@ class Ghee
|
|
69
69
|
# enables defining methods on the proxy object
|
70
70
|
#
|
71
71
|
class Proxy < ::Ghee::ResourceProxy
|
72
|
+
attr_accessor :repo
|
72
73
|
|
73
74
|
# Close issue - closed issue by id
|
74
75
|
#
|
@@ -120,10 +121,11 @@ class Ghee
|
|
120
121
|
#
|
121
122
|
# Returns json
|
122
123
|
#
|
123
|
-
def issues(number=nil
|
124
|
-
params = number if number.is_a?Hash
|
124
|
+
def issues(number=nil)
|
125
125
|
prefix = (!number.is_a?(Hash) and number) ? "#{path_prefix}/issues/#{number}" : "#{path_prefix}/issues"
|
126
|
-
Ghee::API::Repos::Issues::Proxy.new(connection, prefix,
|
126
|
+
issue = Ghee::API::Repos::Issues::Proxy.new(connection, prefix, number)
|
127
|
+
issue.repo = self
|
128
|
+
issue
|
127
129
|
end
|
128
130
|
end
|
129
131
|
end
|
data/lib/ghee/api/repos.rb
CHANGED
@@ -14,6 +14,7 @@ class Ghee
|
|
14
14
|
# enables defining methods on the proxy object
|
15
15
|
#
|
16
16
|
class Proxy < ::Ghee::ResourceProxy
|
17
|
+
attr_accessor :repo_name
|
17
18
|
end
|
18
19
|
|
19
20
|
# Get repos
|
@@ -22,9 +23,12 @@ class Ghee
|
|
22
23
|
#
|
23
24
|
# Returns json
|
24
25
|
#
|
25
|
-
def repos(login,name)
|
26
|
-
|
27
|
-
|
26
|
+
def repos(login,name = nil)
|
27
|
+
repo = name.nil? ? login : "#{login}/#{name}"
|
28
|
+
path_prefix = "/repos/#{repo}"
|
29
|
+
proxy = Proxy.new(connection, path_prefix)
|
30
|
+
proxy.repo_name = repo
|
31
|
+
proxy
|
28
32
|
end
|
29
33
|
|
30
34
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
class Ghee
|
3
|
+
|
4
|
+
# API module encapsulates all of API endpoints
|
5
|
+
# implemented thus far
|
6
|
+
#
|
7
|
+
module API
|
8
|
+
|
9
|
+
module Repos
|
10
|
+
module Issues
|
11
|
+
class Proxy < ::Ghee::ResourceProxy
|
12
|
+
def search(term, state = "open")
|
13
|
+
url = "/legacy/issues/search/#{@repo.repo_name}/#{state}/#{term}"
|
14
|
+
Ghee::API::Search::Issues::Proxy.new(connection, url)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# The Search module handles all of the Github Search
|
21
|
+
# API endpoints
|
22
|
+
#
|
23
|
+
module Search
|
24
|
+
module Issues
|
25
|
+
class Proxy < ::Ghee::ResourceProxy
|
26
|
+
end
|
27
|
+
end
|
28
|
+
class Proxy < ::Ghee::ResourceProxy
|
29
|
+
def issues(repo, term, state = "open")
|
30
|
+
url = "/legacy/issues/search/#{repo}/#{state}/#{term}"
|
31
|
+
Issues::Proxy.new(connection, url)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def search
|
38
|
+
API::Search::Proxy.new(connection,"")
|
39
|
+
end
|
40
|
+
end
|
data/lib/ghee/connection.rb
CHANGED
@@ -19,16 +19,21 @@ class Ghee
|
|
19
19
|
access_token = hash[:access_token] if hash.has_key?:access_token
|
20
20
|
basic_auth = hash[:basic_auth] if hash.has_key?:basic_auth
|
21
21
|
|
22
|
-
super('https://api.github.com') do |builder|
|
22
|
+
super(hash[:api_url] || 'https://api.github.com') do |builder|
|
23
|
+
yield builder if block_given?
|
23
24
|
builder.use FaradayMiddleware::EncodeJson
|
25
|
+
builder.use FaradayMiddleware::Mashify
|
24
26
|
builder.use FaradayMiddleware::ParseJson
|
25
27
|
# builder.use Ghee::Middleware::UriEscape
|
26
28
|
builder.adapter Faraday.default_adapter
|
29
|
+
|
30
|
+
|
27
31
|
end
|
28
32
|
|
29
33
|
self.headers["Authorization"] = "token #{access_token}" if access_token
|
30
34
|
self.basic_auth(basic_auth[:user_name], basic_auth[:password]) if basic_auth
|
31
35
|
self.headers["Accept"] = 'application/json'
|
36
|
+
|
32
37
|
end
|
33
38
|
end
|
34
39
|
end
|
data/lib/ghee/resource_proxy.rb
CHANGED
data/lib/ghee/version.rb
CHANGED
@@ -10,8 +10,8 @@ describe Ghee::API::Events do
|
|
10
10
|
|
11
11
|
def should_be_an_event(event)
|
12
12
|
EventTypes.should include(event['type'])
|
13
|
-
event['repo'].should be_instance_of(
|
14
|
-
event['actor'].should be_instance_of(
|
13
|
+
event['repo'].should be_instance_of(Hashie::Mash)
|
14
|
+
event['actor'].should be_instance_of(Hashie::Mash)
|
15
15
|
event['created_at'].should_not be_nil
|
16
16
|
end
|
17
17
|
|
data/spec/ghee/api/gists_spec.rb
CHANGED
@@ -7,7 +7,7 @@ describe Ghee::API::Gists do
|
|
7
7
|
gist['url'].should include('https://api.github.com/gists/')
|
8
8
|
gist['user']['url'].should include('https://api.github.com/users/')
|
9
9
|
gist['created_at'].should_not be_nil
|
10
|
-
gist['files'].should be_instance_of(
|
10
|
+
gist['files'].should be_instance_of(Hashie::Mash)
|
11
11
|
gist['files'].size.should > 0
|
12
12
|
end
|
13
13
|
|
@@ -60,7 +60,7 @@ describe Ghee::API::Repos::Git do
|
|
60
60
|
before :all do
|
61
61
|
VCR.use_cassette "repos()#git#tags#create" do
|
62
62
|
@test_tag = subject.git.tags.create({
|
63
|
-
:tag => "
|
63
|
+
:tag => "#{Guid::guid}",
|
64
64
|
:object => subject.commits.first["sha"],
|
65
65
|
:type => "commit",
|
66
66
|
:message => "creating a tag with the api",
|
@@ -4,12 +4,19 @@ describe Ghee::API::Repos::Issues do
|
|
4
4
|
subject { Ghee.new(GH_AUTH) }
|
5
5
|
|
6
6
|
def should_be_an_issue(issue)
|
7
|
-
issue["user"]
|
7
|
+
issue["user"].should_not be_nil
|
8
8
|
issue["comments"].should_not be_nil
|
9
9
|
end
|
10
10
|
|
11
11
|
describe "#repos(login,name)#issues" do
|
12
12
|
it "should return repos issues" do
|
13
|
+
VCR.use_cassette("repos(\"#{GH_USER}/#{GH_REPO}\").issues") do
|
14
|
+
issues = subject.repos("#{GH_USER}/#{GH_REPO}").issues
|
15
|
+
issues.size.should > 0
|
16
|
+
should_be_an_issue(issues.first)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
it "should accept only one argument" do
|
13
20
|
VCR.use_cassette("repos(#{GH_USER},#{GH_REPO}).issues") do
|
14
21
|
issues = subject.repos(GH_USER, GH_REPO).issues
|
15
22
|
issues.size.should > 0
|
@@ -17,6 +24,17 @@ describe Ghee::API::Repos::Issues do
|
|
17
24
|
end
|
18
25
|
end
|
19
26
|
|
27
|
+
describe "#repos#issues#search" do
|
28
|
+
it "should return open issues by default" do
|
29
|
+
VCR.use_cassette("repos(#{GH_USER},#{GH_REPO}).issues.search#default") do
|
30
|
+
issues = subject.repos(GH_USER, GH_REPO).issues.search("Seeded")
|
31
|
+
issues.issues.size.should > 0
|
32
|
+
should_be_an_issue(issues.issues.first)
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
20
38
|
describe "#repos(login,name)#issues#closed" do
|
21
39
|
it "should return repos closed issues" do
|
22
40
|
VCR.use_cassette("repos(#{GH_USER},#{GH_REPO}).issues.closed") do
|
@@ -13,7 +13,7 @@ describe Ghee::API::Repos::Milestones do
|
|
13
13
|
describe "#repos(login,name)#milestones" do
|
14
14
|
it "should return repos milestones" do
|
15
15
|
VCR.use_cassette("repos(#{GH_USER},#{GH_REPO}).milestones") do
|
16
|
-
temp_milestone = subject.repos(GH_USER, GH_REPO).milestones.create({ :title => "Destroy test milestone #{
|
16
|
+
temp_milestone = subject.repos(GH_USER, GH_REPO).milestones.create({ :title => "Destroy test milestone #{Guid::guid}" })
|
17
17
|
|
18
18
|
milestones = subject.repos(GH_USER, GH_REPO).milestones
|
19
19
|
milestones.size.should > 0
|
@@ -26,7 +26,7 @@ describe Ghee::API::Repos::Milestones do
|
|
26
26
|
describe "#repos(login,name)#milestones#closed" do
|
27
27
|
it "should return repos closed milestones" do
|
28
28
|
VCR.use_cassette("repos(#{GH_USER},#{GH_REPO}).milestones.closed") do
|
29
|
-
temp_milestone = subject.repos(GH_USER, GH_REPO).milestones.create({ :title => "Destroy test milestone #{
|
29
|
+
temp_milestone = subject.repos(GH_USER, GH_REPO).milestones.create({ :title => "Destroy test milestone #{Guid::guid}" })
|
30
30
|
subject.repos(GH_USER, GH_REPO).milestones(temp_milestone["number"]).close
|
31
31
|
|
32
32
|
milestones = subject.repos(GH_USER, GH_REPO).milestones.closed
|
@@ -44,7 +44,7 @@ describe Ghee::API::Repos::Milestones do
|
|
44
44
|
describe "#repos(login,name)#milestones(1)" do
|
45
45
|
it "should return an milestone by id" do
|
46
46
|
VCR.use_cassette("repos(#{GH_USER},#{GH_REPO}).milestones(1)") do
|
47
|
-
temp_milestone = subject.repos(GH_USER, GH_REPO).milestones.create({ :title => "Destroy test milestone #{
|
47
|
+
temp_milestone = subject.repos(GH_USER, GH_REPO).milestones.create({ :title => "Destroy test milestone #{Guid::guid}" })
|
48
48
|
|
49
49
|
milestone = subject.repos(GH_USER, GH_REPO).milestones(1)
|
50
50
|
should_be_an_milestone(milestone)
|
@@ -58,7 +58,7 @@ describe Ghee::API::Repos::Milestones do
|
|
58
58
|
VCR.use_cassette "milestones(id).destroy" do
|
59
59
|
repo = subject.repos(GH_USER, GH_REPO)
|
60
60
|
test_milestone = repo.milestones.create({
|
61
|
-
:title => "Destroy test milestone #{
|
61
|
+
:title => "Destroy test milestone #{Guid::guid}"
|
62
62
|
})
|
63
63
|
should_be_an_milestone(test_milestone)
|
64
64
|
subject.repos(GH_USER, GH_REPO).milestones(test_milestone["number"]).destroy.should be_true
|
@@ -72,7 +72,7 @@ describe Ghee::API::Repos::Milestones do
|
|
72
72
|
VCR.use_cassette "milestones.test" do
|
73
73
|
@repo = subject.repos(GH_USER, GH_REPO)
|
74
74
|
@test_milestone = @repo.milestones.create({
|
75
|
-
:title => "Test milestone #{
|
75
|
+
:title => "Test milestone #{Guid::guid}"
|
76
76
|
})
|
77
77
|
end
|
78
78
|
end
|
data/spec/ghee/api/repos_spec.rb
CHANGED
@@ -64,7 +64,7 @@ describe Ghee::API::Repos do
|
|
64
64
|
|
65
65
|
it "should patch a label" do
|
66
66
|
VCR.use_cassette("repo(#{GH_USER},#{GH_REPO}).labels.patched") do
|
67
|
-
name = "patch label #{
|
67
|
+
name = "patch label #{Guid::guid}"
|
68
68
|
label = subject.repos(GH_USER, GH_REPO).labels.create(:color => "efefef", :name => name)
|
69
69
|
label["color"].should == "efefef"
|
70
70
|
label["url"].should include "labels/patch"
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Ghee::API::Search do
|
4
|
+
subject { Ghee.new(GH_AUTH) }
|
5
|
+
|
6
|
+
def should_be_an_issue(issue)
|
7
|
+
issue["user"].should_not be_nil
|
8
|
+
issue["comments"].should_not be_nil
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "gh#search#issues" do
|
12
|
+
it "should search open issues by repo by default" do
|
13
|
+
VCR.use_cassette "gh#search#issues#default" do
|
14
|
+
issues = subject.search.issues("#{GH_USER}/#{GH_REPO}", "Seeded")
|
15
|
+
issues.issues.size.should > 0
|
16
|
+
should_be_an_issue(issues.issues.first)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -17,12 +17,12 @@ describe Ghee::Connection do
|
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
|
-
it "should return
|
21
|
-
response.status.should ==
|
20
|
+
it "should return 200" do
|
21
|
+
response.status.should == 200
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should parse the json response" do
|
25
|
-
response.body.
|
25
|
+
response.body.should_not be_nil
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -42,12 +42,12 @@ describe Ghee::Connection do
|
|
42
42
|
subject.get('/')
|
43
43
|
end
|
44
44
|
end
|
45
|
-
it "should return
|
46
|
-
response.status.should ==
|
45
|
+
it "should return 200" do
|
46
|
+
response.status.should == 200
|
47
47
|
end
|
48
48
|
|
49
49
|
it "should parse the json response" do
|
50
|
-
response.body.
|
50
|
+
response.body.should_not be_nil
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
class TestCache < Hash
|
4
|
+
def read(key)
|
5
|
+
if cached = self[key]
|
6
|
+
Marshal.load(cached)
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
def write(key, data)
|
11
|
+
self[key] = Marshal.dump(data)
|
12
|
+
end
|
13
|
+
|
14
|
+
def fetch(key)
|
15
|
+
read(key) || yield.tap { |data| write(key, data) }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
@cache = TestCache.new
|
19
|
+
|
20
|
+
describe Ghee::Connection do
|
21
|
+
context "with custom cache middleware" do
|
22
|
+
before :all do
|
23
|
+
@cache = TestCache.new
|
24
|
+
@connection = connection = Ghee::Connection.new(GH_AUTH) do |conn|
|
25
|
+
conn.use FaradayMiddleware::Caching, @cache
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
let( :connection ){@connection}
|
30
|
+
describe "authorization request" do
|
31
|
+
it "should make one request only" do
|
32
|
+
VCR.use_cassette "cached auth" do
|
33
|
+
connection.get("/").status.should == 200
|
34
|
+
end
|
35
|
+
# this will throw a cassette warning if
|
36
|
+
# it makes another request
|
37
|
+
connection.get("/").status.should == 200
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/spec/ghee_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -4,6 +4,7 @@ Bundler.require :default, :test
|
|
4
4
|
require 'webmock/rspec'
|
5
5
|
require 'vcr'
|
6
6
|
require 'ghee'
|
7
|
+
require 'uuidtools'
|
7
8
|
|
8
9
|
VCR.config do |c|
|
9
10
|
c.cassette_library_dir = File.expand_path('../responses', __FILE__)
|
@@ -18,3 +19,8 @@ else
|
|
18
19
|
GH_AUTH = {:access_token => ENV["TOKEN"]}
|
19
20
|
GH_USER, GH_REPO, GH_ORG = ENV['GH_USER'], ENV['GH_REPO'], ENV['GH_ORG']
|
20
21
|
end
|
22
|
+
class Guid
|
23
|
+
def self.guid
|
24
|
+
UUIDTools::UUID.timestamp_create().to_s
|
25
|
+
end
|
26
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ghee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,55 +10,55 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-
|
13
|
+
date: 2012-12-08 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: faraday
|
17
|
-
requirement: &
|
17
|
+
requirement: &70193822854740 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
|
-
- -
|
20
|
+
- - ~>
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: '0'
|
22
|
+
version: '0.8'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70193822854740
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: faraday_middleware
|
28
|
-
requirement: &
|
28
|
+
requirement: &70193822854260 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
33
|
+
version: '0.9'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70193822854260
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
39
|
-
requirement: &
|
38
|
+
name: hashie
|
39
|
+
requirement: &70193822853800 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
|
-
- -
|
42
|
+
- - ~>
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version: '
|
44
|
+
version: '1.2'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70193822853800
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
50
|
-
requirement: &
|
49
|
+
name: multi_json
|
50
|
+
requirement: &70193822853340 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ~>
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
55
|
+
version: '1.3'
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *70193822853340
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: rake
|
61
|
-
requirement: &
|
61
|
+
requirement: &70193822852960 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *70193822852960
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: json_pure
|
72
|
-
requirement: &
|
72
|
+
requirement: &70193822852500 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,10 +77,10 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *70193822852500
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
82
|
name: rspec
|
83
|
-
requirement: &
|
83
|
+
requirement: &70193824944280 !ruby/object:Gem::Requirement
|
84
84
|
none: false
|
85
85
|
requirements:
|
86
86
|
- - ~>
|
@@ -88,10 +88,10 @@ dependencies:
|
|
88
88
|
version: 2.9.0
|
89
89
|
type: :development
|
90
90
|
prerelease: false
|
91
|
-
version_requirements: *
|
91
|
+
version_requirements: *70193824944280
|
92
92
|
- !ruby/object:Gem::Dependency
|
93
93
|
name: webmock
|
94
|
-
requirement: &
|
94
|
+
requirement: &70193824943860 !ruby/object:Gem::Requirement
|
95
95
|
none: false
|
96
96
|
requirements:
|
97
97
|
- - ! '>='
|
@@ -99,10 +99,10 @@ dependencies:
|
|
99
99
|
version: '0'
|
100
100
|
type: :development
|
101
101
|
prerelease: false
|
102
|
-
version_requirements: *
|
102
|
+
version_requirements: *70193824943860
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: vcr
|
105
|
-
requirement: &
|
105
|
+
requirement: &70193824943400 !ruby/object:Gem::Requirement
|
106
106
|
none: false
|
107
107
|
requirements:
|
108
108
|
- - ! '>='
|
@@ -110,10 +110,10 @@ dependencies:
|
|
110
110
|
version: '0'
|
111
111
|
type: :development
|
112
112
|
prerelease: false
|
113
|
-
version_requirements: *
|
113
|
+
version_requirements: *70193824943400
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
115
|
name: ZenTest
|
116
|
-
requirement: &
|
116
|
+
requirement: &70193824942980 !ruby/object:Gem::Requirement
|
117
117
|
none: false
|
118
118
|
requirements:
|
119
119
|
- - ! '>='
|
@@ -121,10 +121,21 @@ dependencies:
|
|
121
121
|
version: '0'
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
|
-
version_requirements: *
|
124
|
+
version_requirements: *70193824942980
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: autotest-growl
|
127
|
-
requirement: &
|
127
|
+
requirement: &70193824942560 !ruby/object:Gem::Requirement
|
128
|
+
none: false
|
129
|
+
requirements:
|
130
|
+
- - ! '>='
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: *70193824942560
|
136
|
+
- !ruby/object:Gem::Dependency
|
137
|
+
name: uuidtools
|
138
|
+
requirement: &70193824942140 !ruby/object:Gem::Requirement
|
128
139
|
none: false
|
129
140
|
requirements:
|
130
141
|
- - ! '>='
|
@@ -132,7 +143,7 @@ dependencies:
|
|
132
143
|
version: '0'
|
133
144
|
type: :development
|
134
145
|
prerelease: false
|
135
|
-
version_requirements: *
|
146
|
+
version_requirements: *70193824942140
|
136
147
|
description: A complete, simple, and intuitive ruby API for all things Github.
|
137
148
|
email:
|
138
149
|
- rauh.ryan@gmail.com
|
@@ -169,6 +180,7 @@ files:
|
|
169
180
|
- lib/ghee/api/orgs.rb
|
170
181
|
- lib/ghee/api/pulls.rb
|
171
182
|
- lib/ghee/api/repos.rb
|
183
|
+
- lib/ghee/api/search.rb
|
172
184
|
- lib/ghee/api/users.rb
|
173
185
|
- lib/ghee/api/watchers.rb
|
174
186
|
- lib/ghee/connection.rb
|
@@ -188,9 +200,11 @@ files:
|
|
188
200
|
- spec/ghee/api/milestones_spec.rb
|
189
201
|
- spec/ghee/api/orgs_spec.rb
|
190
202
|
- spec/ghee/api/repos_spec.rb
|
203
|
+
- spec/ghee/api/search_spec.rb
|
191
204
|
- spec/ghee/api/teams_spec.rb
|
192
205
|
- spec/ghee/api/users_spec.rb
|
193
206
|
- spec/ghee/connection_spec.rb
|
207
|
+
- spec/ghee/memory_cache_spec.rb
|
194
208
|
- spec/ghee/resource_proxy_spec.rb
|
195
209
|
- spec/ghee_spec.rb
|
196
210
|
- spec/settings.yml.sample
|
@@ -233,9 +247,11 @@ test_files:
|
|
233
247
|
- spec/ghee/api/milestones_spec.rb
|
234
248
|
- spec/ghee/api/orgs_spec.rb
|
235
249
|
- spec/ghee/api/repos_spec.rb
|
250
|
+
- spec/ghee/api/search_spec.rb
|
236
251
|
- spec/ghee/api/teams_spec.rb
|
237
252
|
- spec/ghee/api/users_spec.rb
|
238
253
|
- spec/ghee/connection_spec.rb
|
254
|
+
- spec/ghee/memory_cache_spec.rb
|
239
255
|
- spec/ghee/resource_proxy_spec.rb
|
240
256
|
- spec/ghee_spec.rb
|
241
257
|
- spec/settings.yml.sample
|