gems 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,14 @@
1
+ {
2
+ "all gems": [
3
+ {
4
+ "url": "http://gemwhisperer.heroku.com",
5
+ "failure_count": 1
6
+ }
7
+ ]
8
+ "rails": [
9
+ {
10
+ "url": "http://example.com",
11
+ "failure_count": 0
12
+ }
13
+ ]
14
+ }
@@ -0,0 +1,55 @@
1
+ require 'helper'
2
+
3
+ describe Gems::Client do
4
+ before do
5
+ @client = Gems::Client.new
6
+ end
7
+
8
+ describe "#info" do
9
+ before do
10
+ stub_get("/api/v1/gems/rails.json").to_return(:body => fixture("rails.json"))
11
+ end
12
+
13
+ it "should return some basic information about the given gem" do
14
+ info = @client.info 'rails'
15
+ a_get("/api/v1/gems/rails.json").should have_been_made
16
+ info.name.should == 'rails'
17
+ end
18
+ end
19
+
20
+ describe "#search" do
21
+ before do
22
+ stub_get("/api/v1/gems/search.json?query=cucumber").to_return(:body => fixture("search.json"))
23
+ end
24
+
25
+ it "should return an array of active gems that match the query" do
26
+ search = @client.search 'cucumber'
27
+ a_get("/api/v1/gems/search.json?query=cucumber").should have_been_made
28
+ search.first.name.should == 'cucumber'
29
+ end
30
+ end
31
+
32
+ describe "#versions" do
33
+ before do
34
+ stub_get("/api/v1/versions/coulda.json").to_return(:body => fixture("coulda.json"))
35
+ end
36
+
37
+ it "should return an array of gem version details" do
38
+ versions = @client.versions 'coulda'
39
+ a_get("/api/v1/versions/coulda.json").should have_been_made
40
+ versions.first.number.should == '0.6.3'
41
+ end
42
+ end
43
+
44
+ describe "#dependencies" do
45
+ before do
46
+ stub_get("/api/v1/versions/coulda-0.6.3/downloads.json").to_return(:body => fixture("downloads.json"))
47
+ end
48
+
49
+ it "should return the number of downloads by day for a particular gem version" do
50
+ downloads = @client.downloads 'coulda', '0.6.3'
51
+ a_get("/api/v1/versions/coulda-0.6.3/downloads.json").should have_been_made
52
+ downloads["2011-11-01"].should == 0
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,30 @@
1
+ require 'helper'
2
+
3
+ describe Gems do
4
+ context "when delegating to a client" do
5
+ before do
6
+ stub_get("/api/v1/gems/rails.json").to_return(:body => fixture("rails.json"))
7
+ end
8
+
9
+ it "should get the correct resource" do
10
+ Gems.info('rails')
11
+ a_get("/api/v1/gems/rails.json").should have_been_made
12
+ end
13
+
14
+ it "should return the same results as a client" do
15
+ Gems.info('rails').should == Gems::Client.new.info('rails')
16
+ end
17
+ end
18
+
19
+ describe '.respond_to?' do
20
+ it 'should take an optional argument' do
21
+ Gems.respond_to?(:new, true).should be_true
22
+ end
23
+ end
24
+
25
+ describe ".new" do
26
+ it "should return a Gems::Client" do
27
+ Gems.new.should be_a Gems::Client
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,23 @@
1
+ $:.unshift File.expand_path('..', __FILE__)
2
+ $:.unshift File.expand_path('../../lib', __FILE__)
3
+ require 'simplecov'
4
+ SimpleCov.start
5
+ require 'gems'
6
+ require 'rspec'
7
+ require 'webmock/rspec'
8
+
9
+ def a_get(path)
10
+ a_request(:get, 'http://rubygems.org' + path)
11
+ end
12
+
13
+ def stub_get(path)
14
+ stub_request(:get, 'http://rubygems.org' + path)
15
+ end
16
+
17
+ def fixture_path
18
+ File.expand_path('../fixtures', __FILE__)
19
+ end
20
+
21
+ def fixture(file)
22
+ File.new(fixture_path + '/' + file)
23
+ end
metadata ADDED
@@ -0,0 +1,229 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gems
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 0.0.1
6
+ platform: ruby
7
+ authors:
8
+ - Erik Michaels-Ober
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-05-29 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: ZenTest
17
+ prerelease: false
18
+ requirement: &id001 !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: "4.5"
24
+ type: :development
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: maruku
28
+ prerelease: false
29
+ requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ~>
33
+ - !ruby/object:Gem::Version
34
+ version: "0.6"
35
+ type: :development
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: rake
39
+ prerelease: false
40
+ requirement: &id003 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: "0.9"
46
+ type: :development
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: rspec
50
+ prerelease: false
51
+ requirement: &id004 !ruby/object:Gem::Requirement
52
+ none: false
53
+ requirements:
54
+ - - ~>
55
+ - !ruby/object:Gem::Version
56
+ version: "2.6"
57
+ type: :development
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
60
+ name: simplecov
61
+ prerelease: false
62
+ requirement: &id005 !ruby/object:Gem::Requirement
63
+ none: false
64
+ requirements:
65
+ - - ~>
66
+ - !ruby/object:Gem::Version
67
+ version: "0.4"
68
+ type: :development
69
+ version_requirements: *id005
70
+ - !ruby/object:Gem::Dependency
71
+ name: webmock
72
+ prerelease: false
73
+ requirement: &id006 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: "1.6"
79
+ type: :development
80
+ version_requirements: *id006
81
+ - !ruby/object:Gem::Dependency
82
+ name: yard
83
+ prerelease: false
84
+ requirement: &id007 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: "0.7"
90
+ type: :development
91
+ version_requirements: *id007
92
+ - !ruby/object:Gem::Dependency
93
+ name: faraday
94
+ prerelease: false
95
+ requirement: &id008 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ~>
99
+ - !ruby/object:Gem::Version
100
+ version: 0.6.1
101
+ type: :runtime
102
+ version_requirements: *id008
103
+ - !ruby/object:Gem::Dependency
104
+ name: faraday_middleware
105
+ prerelease: false
106
+ requirement: &id009 !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: 0.6.3
112
+ type: :runtime
113
+ version_requirements: *id009
114
+ - !ruby/object:Gem::Dependency
115
+ name: hashie
116
+ prerelease: false
117
+ requirement: &id010 !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ~>
121
+ - !ruby/object:Gem::Version
122
+ version: 1.0.0
123
+ type: :runtime
124
+ version_requirements: *id010
125
+ - !ruby/object:Gem::Dependency
126
+ name: multi_json
127
+ prerelease: false
128
+ requirement: &id011 !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: 1.0.3
134
+ type: :runtime
135
+ version_requirements: *id011
136
+ - !ruby/object:Gem::Dependency
137
+ name: rash
138
+ prerelease: false
139
+ requirement: &id012 !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ~>
143
+ - !ruby/object:Gem::Version
144
+ version: 0.3.0
145
+ type: :runtime
146
+ version_requirements: *id012
147
+ description: Ruby wrapper for the RubyGems.org API
148
+ email:
149
+ - sferik@gmail.com
150
+ executables: []
151
+
152
+ extensions: []
153
+
154
+ extra_rdoc_files: []
155
+
156
+ files:
157
+ - .gemtest
158
+ - .gitignore
159
+ - .rspec
160
+ - .travis.yml
161
+ - .yardopts
162
+ - Gemfile
163
+ - LICENSE.md
164
+ - README.md
165
+ - Rakefile
166
+ - gems.gemspec
167
+ - lib/gems.rb
168
+ - lib/gems/client.rb
169
+ - lib/gems/connection.rb
170
+ - lib/gems/request.rb
171
+ - lib/gems/version.rb
172
+ - spec/fixtures/api_key
173
+ - spec/fixtures/coulda.json
174
+ - spec/fixtures/dependencies.json
175
+ - spec/fixtures/downloads.json
176
+ - spec/fixtures/gems.json
177
+ - spec/fixtures/gems.xml
178
+ - spec/fixtures/owners.json
179
+ - spec/fixtures/rails.json
180
+ - spec/fixtures/rails.xml
181
+ - spec/fixtures/search.json
182
+ - spec/fixtures/search.xml
183
+ - spec/fixtures/web_hooks.json
184
+ - spec/gems/client_spec.rb
185
+ - spec/gems_spec.rb
186
+ - spec/helper.rb
187
+ homepage: https://github.com/sferik/gems
188
+ licenses: []
189
+
190
+ post_install_message:
191
+ rdoc_options: []
192
+
193
+ require_paths:
194
+ - lib
195
+ required_ruby_version: !ruby/object:Gem::Requirement
196
+ none: false
197
+ requirements:
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: "0"
201
+ required_rubygems_version: !ruby/object:Gem::Requirement
202
+ none: false
203
+ requirements:
204
+ - - ">="
205
+ - !ruby/object:Gem::Version
206
+ version: "0"
207
+ requirements: []
208
+
209
+ rubyforge_project:
210
+ rubygems_version: 1.8.4
211
+ signing_key:
212
+ specification_version: 3
213
+ summary: Ruby wrapper for the RubyGems.org API
214
+ test_files:
215
+ - spec/fixtures/api_key
216
+ - spec/fixtures/coulda.json
217
+ - spec/fixtures/dependencies.json
218
+ - spec/fixtures/downloads.json
219
+ - spec/fixtures/gems.json
220
+ - spec/fixtures/gems.xml
221
+ - spec/fixtures/owners.json
222
+ - spec/fixtures/rails.json
223
+ - spec/fixtures/rails.xml
224
+ - spec/fixtures/search.json
225
+ - spec/fixtures/search.xml
226
+ - spec/fixtures/web_hooks.json
227
+ - spec/gems/client_spec.rb
228
+ - spec/gems_spec.rb
229
+ - spec/helper.rb