gems 0.0.1

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