gems 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/gems.gemspec +2 -2
- data/lib/gems/client.rb +10 -0
- data/lib/gems/connection.rb +6 -5
- data/lib/gems/request.rb +4 -4
- data/lib/gems/version.rb +1 -1
- data/spec/fixtures/dependencies.json +0 -0
- data/spec/gems/client_spec.rb +13 -1
- metadata +8 -6
data/gems.gemspec
CHANGED
@@ -10,10 +10,10 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.add_development_dependency 'webmock', '~> 1.6'
|
11
11
|
gem.add_development_dependency 'yard', '~> 0.7'
|
12
12
|
gem.add_runtime_dependency 'faraday', '~> 0.6.1'
|
13
|
-
gem.add_runtime_dependency 'faraday_middleware', '~> 0.6.
|
13
|
+
gem.add_runtime_dependency 'faraday_middleware', '~> 0.6.5'
|
14
14
|
gem.add_runtime_dependency 'hashie', '~> 1.0.0'
|
15
15
|
gem.add_runtime_dependency 'multi_json', '~> 1.0.3'
|
16
|
-
gem.add_runtime_dependency '
|
16
|
+
gem.add_runtime_dependency 'multi_xml', '~> 0.2.2'
|
17
17
|
|
18
18
|
gem.authors = ["Erik Michaels-Ober"]
|
19
19
|
gem.email = ['sferik@gmail.com']
|
data/lib/gems/client.rb
CHANGED
@@ -50,5 +50,15 @@ module Gems
|
|
50
50
|
def downloads(gem, version, options={})
|
51
51
|
get("/api/v1/versions/#{gem}-#{version}/downloads.json", options)
|
52
52
|
end
|
53
|
+
|
54
|
+
# Returns an array of hashes for all versions of given gems
|
55
|
+
#
|
56
|
+
# @param gems [Array] A list of gem names
|
57
|
+
# @return [Array]
|
58
|
+
# @example
|
59
|
+
# Gems.dependencies 'rails', 'thor'
|
60
|
+
def dependencies(*gems)
|
61
|
+
get("/api/v1/dependencies", {:gems => gems.join(',')}, :marshal)
|
62
|
+
end
|
53
63
|
end
|
54
64
|
end
|
data/lib/gems/connection.rb
CHANGED
@@ -4,9 +4,8 @@ module Gems
|
|
4
4
|
module Connection
|
5
5
|
private
|
6
6
|
|
7
|
-
def connection
|
7
|
+
def connection(format=:json)
|
8
8
|
options = {
|
9
|
-
:headers => {'Accept' => 'application/json'},
|
10
9
|
:ssl => {:verify => false},
|
11
10
|
:url => 'https://rubygems.org',
|
12
11
|
}
|
@@ -14,9 +13,11 @@ module Gems
|
|
14
13
|
Faraday.new(options) do |connection|
|
15
14
|
connection.use Faraday::Request::UrlEncoded
|
16
15
|
connection.use Faraday::Response::RaiseError
|
17
|
-
connection.use Faraday::Response::
|
18
|
-
connection.use Faraday::Response::
|
19
|
-
connection.
|
16
|
+
connection.use Faraday::Response::Mashify
|
17
|
+
connection.use Faraday::Response::ParseXml if :xml == format
|
18
|
+
connection.use Faraday::Response::ParseJson if :json == format
|
19
|
+
connection.use Faraday::Response::ParseMarshal if :marshal == format
|
20
|
+
connection.adapter Faraday.default_adapter
|
20
21
|
end
|
21
22
|
end
|
22
23
|
end
|
data/lib/gems/request.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
module Gems
|
2
2
|
module Request
|
3
|
-
def get(path, options={})
|
4
|
-
request(:get, path, options)
|
3
|
+
def get(path, options={}, format=:json)
|
4
|
+
request(:get, path, options, format)
|
5
5
|
end
|
6
6
|
|
7
7
|
private
|
8
8
|
|
9
|
-
def request(method, path, options)
|
10
|
-
response = connection.send(method) do |request|
|
9
|
+
def request(method, path, options, format)
|
10
|
+
response = connection(format).send(method) do |request|
|
11
11
|
request.url(path, options)
|
12
12
|
end
|
13
13
|
response.body
|
data/lib/gems/version.rb
CHANGED
Binary file
|
data/spec/gems/client_spec.rb
CHANGED
@@ -41,7 +41,7 @@ describe Gems::Client do
|
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
describe "#
|
44
|
+
describe "#downloads" do
|
45
45
|
before do
|
46
46
|
stub_get("/api/v1/versions/coulda-0.6.3/downloads.json").to_return(:body => fixture("downloads.json"))
|
47
47
|
end
|
@@ -52,4 +52,16 @@ describe Gems::Client do
|
|
52
52
|
downloads["2011-11-01"].should == 0
|
53
53
|
end
|
54
54
|
end
|
55
|
+
|
56
|
+
describe "#dependencies" do
|
57
|
+
before do
|
58
|
+
stub_get("/api/v1/dependencies?gems=rails,thor").to_return(:body => fixture("dependencies.json"))
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should return an array of hashes for all versions of given gems" do
|
62
|
+
dependencies = @client.dependencies 'rails', 'thor'
|
63
|
+
a_get("/api/v1/dependencies?gems=rails,thor").should have_been_made
|
64
|
+
dependencies.first.number.should == "3.0.9"
|
65
|
+
end
|
66
|
+
end
|
55
67
|
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: gems
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Erik Michaels-Ober
|
@@ -10,7 +10,8 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-06-22 00:00:00 -07:00
|
14
|
+
default_executable:
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
16
17
|
name: ZenTest
|
@@ -108,7 +109,7 @@ dependencies:
|
|
108
109
|
requirements:
|
109
110
|
- - ~>
|
110
111
|
- !ruby/object:Gem::Version
|
111
|
-
version: 0.6.
|
112
|
+
version: 0.6.5
|
112
113
|
type: :runtime
|
113
114
|
version_requirements: *id009
|
114
115
|
- !ruby/object:Gem::Dependency
|
@@ -134,14 +135,14 @@ dependencies:
|
|
134
135
|
type: :runtime
|
135
136
|
version_requirements: *id011
|
136
137
|
- !ruby/object:Gem::Dependency
|
137
|
-
name:
|
138
|
+
name: multi_xml
|
138
139
|
prerelease: false
|
139
140
|
requirement: &id012 !ruby/object:Gem::Requirement
|
140
141
|
none: false
|
141
142
|
requirements:
|
142
143
|
- - ~>
|
143
144
|
- !ruby/object:Gem::Version
|
144
|
-
version: 0.
|
145
|
+
version: 0.2.2
|
145
146
|
type: :runtime
|
146
147
|
version_requirements: *id012
|
147
148
|
description: Ruby wrapper for the RubyGems.org API
|
@@ -184,6 +185,7 @@ files:
|
|
184
185
|
- spec/gems/client_spec.rb
|
185
186
|
- spec/gems_spec.rb
|
186
187
|
- spec/helper.rb
|
188
|
+
has_rdoc: true
|
187
189
|
homepage: https://github.com/sferik/gems
|
188
190
|
licenses: []
|
189
191
|
|
@@ -207,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
209
|
requirements: []
|
208
210
|
|
209
211
|
rubyforge_project:
|
210
|
-
rubygems_version: 1.
|
212
|
+
rubygems_version: 1.5.3
|
211
213
|
signing_key:
|
212
214
|
specification_version: 3
|
213
215
|
summary: Ruby wrapper for the RubyGems.org API
|