gems 0.0.7 → 0.0.8

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/.travis.yml CHANGED
@@ -1,6 +1,5 @@
1
1
  rvm:
2
2
  - 1.8.7
3
- - 1.9.1
4
3
  - 1.9.2
5
4
  - jruby
6
5
  - rbx
data/README.md CHANGED
@@ -69,13 +69,13 @@ Usage Examples
69
69
  puts Gems.web_hooks
70
70
 
71
71
  # Add a webhook
72
- Gems.add_web_hook 'rails', 'http://example.com' [TODO]
72
+ Gems.add_web_hook 'rails', 'http://example.com'
73
73
 
74
74
  # Remove a webhook
75
- Gems.remove_web_hook 'rails', 'http://example.com' [TODO]
75
+ Gems.remove_web_hook 'rails', 'http://example.com'
76
76
 
77
77
  # Test fire a webhook.
78
- Gems.fire_web_hook 'rails', 'http://example.com' [TODO]
78
+ Gems.fire_web_hook 'rails', 'http://example.com'
79
79
 
80
80
  # Submit a gem to RubyGems.org
81
81
  Gems.push File.new 'gemcutter-0.2.1.gem' [TODO]
data/lib/gems/client.rb CHANGED
@@ -18,12 +18,12 @@ module Gems
18
18
 
19
19
  # Returns some basic information about the given gem
20
20
  #
21
- # @param gem [String] The name of a gem.
21
+ # @param gem_name [String] The name of a gem.
22
22
  # @return [Hashie::Mash]
23
23
  # @example
24
24
  # Gems.info 'rails'
25
- def info(gem)
26
- response = get("/api/v1/gems/#{gem}")
25
+ def info(gem_name)
26
+ response = get("/api/v1/gems/#{gem_name}")
27
27
  format.to_s.downcase == 'xml' ? response['rubygem'] : response
28
28
  end
29
29
 
@@ -40,28 +40,28 @@ module Gems
40
40
 
41
41
  # Returns an array of gem version details
42
42
  #
43
- # @param gem [String] The name of a gem.
43
+ # @param gem_name [String] The name of a gem.
44
44
  # @return [Hashie::Mash]
45
45
  # @example
46
46
  # Gems.versions 'coulda'
47
- def versions(gem)
48
- get("/api/v1/versions/#{gem}", {}, :json)
47
+ def versions(gem_name)
48
+ get("/api/v1/versions/#{gem_name}", {}, :json)
49
49
  end
50
50
 
51
51
  # Returns the number of downloads by day for a particular gem version
52
52
  #
53
- # @param gem [String] The name of a gem.
54
- # @param version [String] The version of a gem.
53
+ # @param gem_name [String] The name of a gem.
54
+ # @param gem_version [String] The version of a gem.
55
55
  # @param from [Date] Search start date.
56
56
  # @param to [Date] Search end date.
57
57
  # @return [Hashie::Mash]
58
58
  # @example
59
59
  # Gems.downloads 'coulda', '0.6.3', Date.today - 30, Date.today
60
- def downloads(gem, version, from=nil, to=Date.today)
60
+ def downloads(gem_name, gem_version, from=nil, to=Date.today)
61
61
  if from
62
- get("/api/v1/versions/#{gem}-#{version}/downloads/search", {:from => from.to_s, :to => to.to_s}, :json)
62
+ get("/api/v1/versions/#{gem_name}-#{gem_version}/downloads/search", {:from => from.to_s, :to => to.to_s}, :json)
63
63
  else
64
- get("/api/v1/versions/#{gem}-#{version}/downloads", {}, :json)
64
+ get("/api/v1/versions/#{gem_name}-#{gem_version}/downloads", {}, :json)
65
65
  end
66
66
  end
67
67
 
@@ -92,9 +92,6 @@ module Gems
92
92
  #
93
93
  # @return [Array]
94
94
  # @example
95
- # Gems.configure do |config|
96
- # config.key = '701243f217cdf23b1370c7b66b65ca97'
97
- # end
98
95
  # Gems.gems
99
96
  def gems
100
97
  response = get("/api/v1/gems")
@@ -103,55 +100,76 @@ module Gems
103
100
 
104
101
  # View all owners of a gem that you own
105
102
  #
106
- # @param gem [String] The name of a gem.
103
+ # @param gem_name [String] The name of a gem.
107
104
  # @return [Array]
108
105
  # @example
109
- # Gems.configure do |config|
110
- # config.key = '701243f217cdf23b1370c7b66b65ca97'
111
- # end
112
106
  # Gems.owners('gemcutter')
113
- def owners(gem)
114
- get("/api/v1/gems/#{gem}/owners", {}, :json)
107
+ def owners(gem_name)
108
+ get("/api/v1/gems/#{gem_name}/owners")
109
+ end
110
+
111
+ # Add an owner to a RubyGem you own, giving that user permission to manage it
112
+ #
113
+ # @param gem_name [String] The name of a gem.
114
+ # @param owner [String] The email address of the user you want to add.
115
+ # @return [String]
116
+ # @example
117
+ # Gems.add_owner("gemcutter", "josh@technicalpickles.com")
118
+ def add_owner(gem_name, owner)
119
+ post("/api/v1/gems/#{gem_name}/owners", {:email => owner}, :raw)
120
+ end
121
+
122
+ # Remove a user's permission to manage a RubyGem you own
123
+ #
124
+ # @param gem_name [String] The name of a gem.
125
+ # @param owner [String] The email address of the user you want to remove.
126
+ # @return [String]
127
+ # @example
128
+ # Gems.remove_owner("gemcutter", "josh@technicalpickles.com")
129
+ def remove_owner(gem_name, owner)
130
+ delete("/api/v1/gems/#{gem_name}/owners", {:email => owner}, :raw)
115
131
  end
116
132
 
117
133
  # List the webhooks registered under your account
118
134
  #
119
135
  # @return [Hashie::Mash]
120
136
  # @example
121
- # Gems.configure do |config|
122
- # config.key = '701243f217cdf23b1370c7b66b65ca97'
123
- # end
124
137
  # Gems.web_hooks
125
138
  def web_hooks
126
139
  get("/api/v1/web_hooks", {}, :json)
127
140
  end
128
141
 
129
- # Add an owner to a RubyGem you own, giving that user permission to manage it
142
+ # Create a webhook
130
143
  #
131
- # @param gem [String] The name of a gem.
132
- # @param owner [String] The email address of the user you want to add.
144
+ # @param gem_name [String] The name of a gem. Specify "*" to add the hook to all your gems.
145
+ # @param url [String] The URL of the web hook.
133
146
  # @return [String]
134
147
  # @example
135
- # Gems.configure do |config|
136
- # config.key = '701243f217cdf23b1370c7b66b65ca97'
137
- # end
138
- # Gems.add_owner("gemcutter", "josh@technicalpickles.com")
139
- def add_owner(gem, owner)
140
- post("/api/v1/gems/#{gem}/owners", {:email => owner}, :raw)
148
+ # Gems.add_web_hook("rails", "http://example.com")
149
+ def add_web_hook(gem_name, url)
150
+ post("/api/v1/web_hooks", {:gem_name => gem_name, :url => url}, :raw)
141
151
  end
142
152
 
143
- # Remove a user's permission to manage a RubyGem you own
153
+ # Remove a webhook
144
154
  #
145
- # @param gem [String] The name of a gem.
146
- # @param owner [String] The email address of the user you want to remove.
155
+ # @param gem_name [String] The name of a gem. Specify "*" to remove the hook from all your gems.
156
+ # @param url [String] The URL of the web hook.
147
157
  # @return [String]
148
158
  # @example
149
- # Gems.configure do |config|
150
- # config.key = '701243f217cdf23b1370c7b66b65ca97'
151
- # end
152
- # Gems.remove_owner("gemcutter", "josh@technicalpickles.com")
153
- def remove_owner(gem, owner)
154
- delete("/api/v1/gems/#{gem}/owners", {:email => owner}, :raw)
159
+ # Gems.remove_web_hook("rails", "http://example.com")
160
+ def remove_web_hook(gem_name, url)
161
+ delete("/api/v1/web_hooks/remove", {:gem_name => gem_name, :url => url}, :raw)
162
+ end
163
+
164
+ # Test fire a webhook
165
+ #
166
+ # @param gem_name [String] The name of a gem. Specify "*" to fire the hook for all your gems.
167
+ # @param url [String] The URL of the web hook.
168
+ # @return [String]
169
+ # @example
170
+ # Gems.fire_web_hook("rails", "http://example.com")
171
+ def fire_web_hook(gem_name, url)
172
+ post("/api/v1/web_hooks/fire", {:gem_name => gem_name, :url => url}, :raw)
155
173
  end
156
174
  end
157
175
  end
@@ -23,6 +23,8 @@ module Gems
23
23
  connection.use Faraday::Response::ParseMarshal
24
24
  when 'xml'
25
25
  connection.use Faraday::Response::ParseXml
26
+ when 'yaml'
27
+ connection.use Faraday::Response::ParseYaml
26
28
  end
27
29
  connection.use Faraday::Response::RaiseError
28
30
  connection.adapter Faraday.default_adapter
data/lib/gems/request.rb CHANGED
@@ -29,7 +29,7 @@ module Gems
29
29
 
30
30
  def formatted_path(path, format)
31
31
  case format.to_s.downcase
32
- when 'json', 'xml'
32
+ when 'json', 'xml', 'yaml'
33
33
  [path, format].compact.join('.')
34
34
  when 'marshal', 'raw'
35
35
  path
data/lib/gems/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Gems
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -0,0 +1 @@
1
+ Successfully created webhook for all gems to http://example.com
@@ -0,0 +1 @@
1
+ Successfully deployed webhook for gemcutter to http://example.com
@@ -0,0 +1,2 @@
1
+ ---
2
+ - email: sferik@gmail.com
@@ -0,0 +1 @@
1
+ Successfully removed webhook for all gems to http://example.com
@@ -1,23 +1,23 @@
1
1
  require 'helper'
2
2
 
3
3
  describe Gems::Client do
4
- %w(json xml).each do |format|
5
- context ".new(:format => '#{format}')" do
6
- before do
7
- Gems.configure do |config|
8
- config.format = format
9
- config.key = '701243f217cdf23b1370c7b66b65ca97'
10
- config.username = 'nick@gemcutter.org'
11
- config.password = 'schwwwwing'
12
- end
13
- end
4
+ before do
5
+ Gems.configure do |config|
6
+ config.key = '701243f217cdf23b1370c7b66b65ca97'
7
+ config.username = 'nick@gemcutter.org'
8
+ config.password = 'schwwwwing'
9
+ end
10
+ end
14
11
 
15
- after do
16
- Gems.reset
17
- end
12
+ after do
13
+ Gems.reset
14
+ end
18
15
 
19
- describe ".info" do
16
+ describe ".info" do
17
+ %w(json xml).each do |format|
18
+ context "with format #{format}" do
20
19
  before do
20
+ Gems.format = format
21
21
  stub_get("/api/v1/gems/rails.#{format}").
22
22
  to_return(:body => fixture("rails.#{format}"))
23
23
  end
@@ -29,9 +29,14 @@ describe Gems::Client do
29
29
  info.name.should == 'rails'
30
30
  end
31
31
  end
32
+ end
33
+ end
32
34
 
33
- describe ".search" do
35
+ describe ".search" do
36
+ %w(json xml).each do |format|
37
+ context "with format #{format}" do
34
38
  before do
39
+ Gems.format = format
35
40
  stub_get("/api/v1/search.#{format}").
36
41
  with(:query => {"query" => "cucumber"}).
37
42
  to_return(:body => fixture("search.#{format}"))
@@ -45,101 +50,106 @@ describe Gems::Client do
45
50
  search.first.name.should == 'cucumber'
46
51
  end
47
52
  end
53
+ end
54
+ end
48
55
 
49
- describe ".versions" do
50
- before do
51
- stub_get("/api/v1/versions/coulda.json").
52
- to_return(:body => fixture("coulda.json"))
53
- end
56
+ describe ".versions" do
57
+ before do
58
+ stub_get("/api/v1/versions/coulda.json").
59
+ to_return(:body => fixture("coulda.json"))
60
+ end
54
61
 
55
- it "should return an array of gem version details" do
56
- versions = Gems.versions 'coulda'
57
- a_get("/api/v1/versions/coulda.json").
58
- should have_been_made
59
- versions.first.number.should == '0.6.3'
60
- end
62
+ it "should return an array of gem version details" do
63
+ versions = Gems.versions 'coulda'
64
+ a_get("/api/v1/versions/coulda.json").
65
+ should have_been_made
66
+ versions.first.number.should == '0.6.3'
67
+ end
68
+ end
69
+
70
+ describe ".downloads" do
71
+ context "with no dates specified" do
72
+ before do
73
+ stub_get("/api/v1/versions/coulda-0.6.3/downloads.json").
74
+ to_return(:body => fixture("downloads.json"))
61
75
  end
62
76
 
63
- describe ".downloads" do
64
- context "with no dates specified" do
65
- before do
66
- stub_get("/api/v1/versions/coulda-0.6.3/downloads.json").
67
- to_return(:body => fixture("downloads.json"))
68
- end
69
-
70
- it "should return the number of downloads by day for a particular gem version" do
71
- downloads = Gems.downloads 'coulda', '0.6.3'
72
- a_get("/api/v1/versions/coulda-0.6.3/downloads.json").
73
- should have_been_made
74
- downloads["2011-06-22"].should == 8
75
- end
76
- end
77
+ it "should return the number of downloads by day for a particular gem version" do
78
+ downloads = Gems.downloads 'coulda', '0.6.3'
79
+ a_get("/api/v1/versions/coulda-0.6.3/downloads.json").
80
+ should have_been_made
81
+ downloads["2011-06-22"].should == 8
82
+ end
83
+ end
77
84
 
78
- context "with from date specified" do
79
- before do
80
- stub_get("/api/v1/versions/coulda-0.6.3/downloads/search.json").
81
- with(:query => {"from" => "2011-01-01", "to" => Date.today.to_s}).
82
- to_return(:body => fixture("downloads.json"))
83
- end
84
-
85
- it "should return the number of downloads by day for a particular gem version" do
86
- downloads = Gems.downloads 'coulda', '0.6.3', Date.parse('2011-01-01')
87
- a_get("/api/v1/versions/coulda-0.6.3/downloads/search.json").
88
- with(:query => {"from" => "2011-01-01", "to" => Date.today.to_s}).
89
- should have_been_made
90
- downloads["2011-06-22"].should == 8
91
- end
92
- end
85
+ context "with from date specified" do
86
+ before do
87
+ stub_get("/api/v1/versions/coulda-0.6.3/downloads/search.json").
88
+ with(:query => {"from" => "2011-01-01", "to" => Date.today.to_s}).
89
+ to_return(:body => fixture("downloads.json"))
90
+ end
93
91
 
94
- context "with from and to dates specified" do
95
- before do
96
- stub_get("/api/v1/versions/coulda-0.6.3/downloads/search.json").
97
- with(:query => {"from" => "2011-01-01", "to" => "2011-06-28"}).
98
- to_return(:body => fixture("downloads.json"))
99
- end
100
-
101
- it "should return the number of downloads by day for a particular gem version" do
102
- downloads = Gems.downloads 'coulda', '0.6.3', Date.parse('2011-01-01'), Date.parse('2011-06-28')
103
- a_get("/api/v1/versions/coulda-0.6.3/downloads/search.json").
104
- with(:query => {"from" => "2011-01-01", "to" => "2011-06-28"}).
105
- should have_been_made
106
- downloads["2011-06-22"].should == 8
107
- end
108
- end
92
+ it "should return the number of downloads by day for a particular gem version" do
93
+ downloads = Gems.downloads 'coulda', '0.6.3', Date.parse('2011-01-01')
94
+ a_get("/api/v1/versions/coulda-0.6.3/downloads/search.json").
95
+ with(:query => {"from" => "2011-01-01", "to" => Date.today.to_s}).
96
+ should have_been_made
97
+ downloads["2011-06-22"].should == 8
109
98
  end
99
+ end
110
100
 
111
- describe ".dependencies" do
112
- before do
113
- stub_get("/api/v1/dependencies").
114
- with(:query => {"gems" => "rails,thor"}).
115
- to_return(:body => fixture("dependencies"))
116
- end
101
+ context "with from and to dates specified" do
102
+ before do
103
+ stub_get("/api/v1/versions/coulda-0.6.3/downloads/search.json").
104
+ with(:query => {"from" => "2011-01-01", "to" => "2011-06-28"}).
105
+ to_return(:body => fixture("downloads.json"))
106
+ end
117
107
 
118
- it "should return an array of hashes for all versions of given gems" do
119
- dependencies = Gems.dependencies 'rails', 'thor'
120
- a_get("/api/v1/dependencies").
121
- with(:query => {"gems" => "rails,thor"}).
122
- should have_been_made
123
- dependencies.first.number.should == "3.0.9"
124
- end
108
+ it "should return the number of downloads by day for a particular gem version" do
109
+ downloads = Gems.downloads 'coulda', '0.6.3', Date.parse('2011-01-01'), Date.parse('2011-06-28')
110
+ a_get("/api/v1/versions/coulda-0.6.3/downloads/search.json").
111
+ with(:query => {"from" => "2011-01-01", "to" => "2011-06-28"}).
112
+ should have_been_made
113
+ downloads["2011-06-22"].should == 8
125
114
  end
115
+ end
116
+ end
126
117
 
127
- describe ".api_key" do
128
- before do
129
- stub_get("/api/v1/api_key").
130
- to_return(:body => fixture("api_key"))
131
- end
118
+ describe ".dependencies" do
119
+ before do
120
+ stub_get("/api/v1/dependencies").
121
+ with(:query => {"gems" => "rails,thor"}).
122
+ to_return(:body => fixture("dependencies"))
123
+ end
132
124
 
133
- it "should retrieve an API key" do
134
- api_key = Gems.api_key
135
- a_get("/api/v1/api_key").
136
- should have_been_made
137
- api_key.should == "701243f217cdf23b1370c7b66b65ca97"
138
- end
139
- end
125
+ it "should return an array of hashes for all versions of given gems" do
126
+ dependencies = Gems.dependencies 'rails', 'thor'
127
+ a_get("/api/v1/dependencies").
128
+ with(:query => {"gems" => "rails,thor"}).
129
+ should have_been_made
130
+ dependencies.first.number.should == "3.0.9"
131
+ end
132
+ end
133
+
134
+ describe ".api_key" do
135
+ before do
136
+ stub_get("/api/v1/api_key").
137
+ to_return(:body => fixture("api_key"))
138
+ end
139
+
140
+ it "should retrieve an API key" do
141
+ api_key = Gems.api_key
142
+ a_get("/api/v1/api_key").
143
+ should have_been_made
144
+ api_key.should == "701243f217cdf23b1370c7b66b65ca97"
145
+ end
146
+ end
140
147
 
141
- describe ".gems" do
148
+ describe ".gems" do
149
+ %w(json xml).each do |format|
150
+ context "with format #{format}" do
142
151
  before do
152
+ Gems.format = format
143
153
  stub_get("/api/v1/gems.#{format}").
144
154
  to_return(:body => fixture("gems.#{format}"))
145
155
  end
@@ -151,66 +161,119 @@ describe Gems::Client do
151
161
  gems.first.name.should == "congress"
152
162
  end
153
163
  end
164
+ end
165
+ end
154
166
 
155
- describe ".owners" do
167
+ describe ".owners" do
168
+ %w(json yaml).each do |format|
169
+ context "with format #{format}" do
156
170
  before do
157
- stub_get("/api/v1/gems/gems/owners.json").
158
- to_return(:body => fixture("owners.json"))
171
+ Gems.format = format
172
+ stub_get("/api/v1/gems/gems/owners.#{format}").
173
+ to_return(:body => fixture("owners.#{format}"))
159
174
  end
160
175
 
161
176
  it "should list all owners of a gem" do
162
177
  owners = Gems.owners("gems")
163
- a_get("/api/v1/gems/gems/owners.json").
178
+ a_get("/api/v1/gems/gems/owners.#{format}").
164
179
  should have_been_made
165
180
  owners.first.email.should == "sferik@gmail.com"
166
181
  end
167
182
  end
183
+ end
184
+ end
168
185
 
169
- describe ".web_hooks" do
170
- before do
171
- stub_get("/api/v1/web_hooks.json").
172
- to_return(:body => fixture("web_hooks.json"))
173
- end
186
+ describe ".add_owner" do
187
+ before do
188
+ stub_post("/api/v1/gems/gems/owners").
189
+ with(:body => {:email => "sferik@gmail.com"}).
190
+ to_return(:body => fixture("add_owner.json"))
191
+ end
174
192
 
175
- it "should list the webhooks registered under your account" do
176
- web_hooks = Gems.web_hooks
177
- a_get("/api/v1/web_hooks.json").
178
- should have_been_made
179
- web_hooks.rails.first.url.should == "http://example.com"
180
- end
181
- end
193
+ it "should add an owner to a RubyGem" do
194
+ owner = Gems.add_owner("gems", "sferik@gmail.com")
195
+ a_post("/api/v1/gems/gems/owners").
196
+ with(:body => {:email => "sferik@gmail.com"}).
197
+ should have_been_made
198
+ owner.should == "Owner added successfully."
199
+ end
200
+ end
182
201
 
183
- describe ".add_owner" do
184
- before do
185
- stub_post("/api/v1/gems/gems/owners").
186
- with(:body => {:email => "sferik@gmail.com"}).
187
- to_return(:body => fixture("add_owner.json"))
188
- end
202
+ describe ".remove_owner" do
203
+ before do
204
+ stub_delete("/api/v1/gems/gems/owners").
205
+ with(:query => {:email => "sferik@gmail.com"}).
206
+ to_return(:body => fixture("remove_owner.json"))
207
+ end
189
208
 
190
- it "should add an owner to a RubyGem" do
191
- owner = Gems.add_owner("gems", "sferik@gmail.com")
192
- a_post("/api/v1/gems/gems/owners").
193
- with(:body => {:email => "sferik@gmail.com"}).
194
- should have_been_made
195
- owner.should == "Owner added successfully."
196
- end
197
- end
209
+ it "should remove an owner from a RubyGem" do
210
+ owner = Gems.remove_owner("gems", "sferik@gmail.com")
211
+ a_delete("/api/v1/gems/gems/owners").
212
+ with(:query => {:email => "sferik@gmail.com"}).
213
+ should have_been_made
214
+ owner.should == "Owner removed successfully."
215
+ end
216
+ end
198
217
 
199
- describe ".remove_owner" do
200
- before do
201
- stub_delete("/api/v1/gems/gems/owners").
202
- with(:query => {:email => "sferik@gmail.com"}).
203
- to_return(:body => fixture("remove_owner.json"))
204
- end
218
+ describe ".web_hooks" do
219
+ before do
220
+ stub_get("/api/v1/web_hooks.json").
221
+ to_return(:body => fixture("web_hooks.json"))
222
+ end
205
223
 
206
- it "should remove an owner from a RubyGem" do
207
- owner = Gems.remove_owner("gems", "sferik@gmail.com")
208
- a_delete("/api/v1/gems/gems/owners").
209
- with(:query => {:email => "sferik@gmail.com"}).
210
- should have_been_made
211
- owner.should == "Owner removed successfully."
212
- end
213
- end
224
+ it "should list the webhooks registered under your account" do
225
+ web_hooks = Gems.web_hooks
226
+ a_get("/api/v1/web_hooks.json").
227
+ should have_been_made
228
+ web_hooks.rails.first.url.should == "http://example.com"
229
+ end
230
+ end
231
+
232
+ describe ".add_web_hook" do
233
+ before do
234
+ stub_post("/api/v1/web_hooks").
235
+ with(:body => {:gem_name => "*", :url => "http://example.com"}).
236
+ to_return(:body => fixture("add_web_hook"))
237
+ end
238
+
239
+ it "should add a web hook" do
240
+ add_web_hook = Gems.add_web_hook("*", "http://example.com")
241
+ a_post("/api/v1/web_hooks").
242
+ with(:body => {:gem_name => "*", :url => "http://example.com"}).
243
+ should have_been_made
244
+ add_web_hook.should == "Successfully created webhook for all gems to http://example.com"
245
+ end
246
+ end
247
+
248
+ describe ".remove_web_hook" do
249
+ before do
250
+ stub_delete("/api/v1/web_hooks/remove").
251
+ with(:query => {:gem_name => "*", :url => "http://example.com"}).
252
+ to_return(:body => fixture("remove_web_hook"))
253
+ end
254
+
255
+ it "should remove a web hook" do
256
+ remove_web_hook = Gems.remove_web_hook("*", "http://example.com")
257
+ a_delete("/api/v1/web_hooks/remove").
258
+ with(:query => {:gem_name => "*", :url => "http://example.com"}).
259
+ should have_been_made
260
+ remove_web_hook.should == "Successfully removed webhook for all gems to http://example.com"
261
+ end
262
+ end
263
+
264
+ describe ".fire_web_hook" do
265
+ before do
266
+ stub_post("/api/v1/web_hooks/fire").
267
+ with(:body => {:gem_name => "*", :url => "http://example.com"}).
268
+ to_return(:body => fixture("fire_web_hook"))
269
+ end
270
+
271
+ it "should fire a web hook" do
272
+ fire_web_hook = Gems.fire_web_hook("*", "http://example.com")
273
+ a_post("/api/v1/web_hooks/fire").
274
+ with(:body => {:gem_name => "*", :url => "http://example.com"}).
275
+ should have_been_made
276
+ fire_web_hook.should == "Successfully deployed webhook for gemcutter to http://example.com"
214
277
  end
215
278
  end
216
279
  end
metadata CHANGED
@@ -2,10 +2,10 @@
2
2
  name: gems
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.7
5
+ version: 0.0.8
6
6
  platform: ruby
7
7
  authors:
8
- - Erik Michaels-Ober
8
+ - Erik Michaels-Ober
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
@@ -13,141 +13,141 @@ cert_chain: []
13
13
  date: 2011-07-01 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
- - !ruby/object:Gem::Dependency
17
- name: ZenTest
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
20
- none: false
21
- requirements:
22
- - - ~>
23
- - !ruby/object:Gem::Version
24
- version: "4.5"
25
- type: :development
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: maruku
29
- prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
31
- none: false
32
- requirements:
33
- - - ~>
34
- - !ruby/object:Gem::Version
35
- version: "0.6"
36
- type: :development
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: rake
40
- prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ~>
45
- - !ruby/object:Gem::Version
46
- version: "0.9"
47
- type: :development
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: rspec
51
- prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
55
- - - ~>
56
- - !ruby/object:Gem::Version
57
- version: "2.6"
58
- type: :development
59
- version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: simplecov
62
- prerelease: false
63
- requirement: &id005 !ruby/object:Gem::Requirement
64
- none: false
65
- requirements:
66
- - - ~>
67
- - !ruby/object:Gem::Version
68
- version: "0.4"
69
- type: :development
70
- version_requirements: *id005
71
- - !ruby/object:Gem::Dependency
72
- name: webmock
73
- prerelease: false
74
- requirement: &id006 !ruby/object:Gem::Requirement
75
- none: false
76
- requirements:
77
- - - ~>
78
- - !ruby/object:Gem::Version
79
- version: "1.6"
80
- type: :development
81
- version_requirements: *id006
82
- - !ruby/object:Gem::Dependency
83
- name: yard
84
- prerelease: false
85
- requirement: &id007 !ruby/object:Gem::Requirement
86
- none: false
87
- requirements:
88
- - - ~>
89
- - !ruby/object:Gem::Version
90
- version: "0.7"
91
- type: :development
92
- version_requirements: *id007
93
- - !ruby/object:Gem::Dependency
94
- name: faraday
95
- prerelease: false
96
- requirement: &id008 !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ~>
100
- - !ruby/object:Gem::Version
101
- version: 0.6.1
102
- type: :runtime
103
- version_requirements: *id008
104
- - !ruby/object:Gem::Dependency
105
- name: faraday_middleware
106
- prerelease: false
107
- requirement: &id009 !ruby/object:Gem::Requirement
108
- none: false
109
- requirements:
110
- - - ~>
111
- - !ruby/object:Gem::Version
112
- version: 0.6.5
113
- type: :runtime
114
- version_requirements: *id009
115
- - !ruby/object:Gem::Dependency
116
- name: hashie
117
- prerelease: false
118
- requirement: &id010 !ruby/object:Gem::Requirement
119
- none: false
120
- requirements:
121
- - - ~>
122
- - !ruby/object:Gem::Version
123
- version: 1.0.0
124
- type: :runtime
125
- version_requirements: *id010
126
- - !ruby/object:Gem::Dependency
127
- name: multi_json
128
- prerelease: false
129
- requirement: &id011 !ruby/object:Gem::Requirement
130
- none: false
131
- requirements:
132
- - - ~>
133
- - !ruby/object:Gem::Version
134
- version: 1.0.3
135
- type: :runtime
136
- version_requirements: *id011
137
- - !ruby/object:Gem::Dependency
138
- name: multi_xml
139
- prerelease: false
140
- requirement: &id012 !ruby/object:Gem::Requirement
141
- none: false
142
- requirements:
143
- - - ~>
144
- - !ruby/object:Gem::Version
145
- version: 0.2.2
146
- type: :runtime
147
- version_requirements: *id012
16
+ - !ruby/object:Gem::Dependency
17
+ name: ZenTest
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: "4.5"
25
+ type: :development
26
+ version_requirements: *id001
27
+ - !ruby/object:Gem::Dependency
28
+ name: maruku
29
+ prerelease: false
30
+ requirement: &id002 !ruby/object:Gem::Requirement
31
+ none: false
32
+ requirements:
33
+ - - ~>
34
+ - !ruby/object:Gem::Version
35
+ version: "0.6"
36
+ type: :development
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: rake
40
+ prerelease: false
41
+ requirement: &id003 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: "0.9"
47
+ type: :development
48
+ version_requirements: *id003
49
+ - !ruby/object:Gem::Dependency
50
+ name: rspec
51
+ prerelease: false
52
+ requirement: &id004 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ~>
56
+ - !ruby/object:Gem::Version
57
+ version: "2.6"
58
+ type: :development
59
+ version_requirements: *id004
60
+ - !ruby/object:Gem::Dependency
61
+ name: simplecov
62
+ prerelease: false
63
+ requirement: &id005 !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: "0.4"
69
+ type: :development
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: webmock
73
+ prerelease: false
74
+ requirement: &id006 !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ~>
78
+ - !ruby/object:Gem::Version
79
+ version: "1.6"
80
+ type: :development
81
+ version_requirements: *id006
82
+ - !ruby/object:Gem::Dependency
83
+ name: yard
84
+ prerelease: false
85
+ requirement: &id007 !ruby/object:Gem::Requirement
86
+ none: false
87
+ requirements:
88
+ - - ~>
89
+ - !ruby/object:Gem::Version
90
+ version: "0.7"
91
+ type: :development
92
+ version_requirements: *id007
93
+ - !ruby/object:Gem::Dependency
94
+ name: faraday
95
+ prerelease: false
96
+ requirement: &id008 !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: 0.6.1
102
+ type: :runtime
103
+ version_requirements: *id008
104
+ - !ruby/object:Gem::Dependency
105
+ name: faraday_middleware
106
+ prerelease: false
107
+ requirement: &id009 !ruby/object:Gem::Requirement
108
+ none: false
109
+ requirements:
110
+ - - ~>
111
+ - !ruby/object:Gem::Version
112
+ version: 0.6.5
113
+ type: :runtime
114
+ version_requirements: *id009
115
+ - !ruby/object:Gem::Dependency
116
+ name: hashie
117
+ prerelease: false
118
+ requirement: &id010 !ruby/object:Gem::Requirement
119
+ none: false
120
+ requirements:
121
+ - - ~>
122
+ - !ruby/object:Gem::Version
123
+ version: 1.0.0
124
+ type: :runtime
125
+ version_requirements: *id010
126
+ - !ruby/object:Gem::Dependency
127
+ name: multi_json
128
+ prerelease: false
129
+ requirement: &id011 !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ~>
133
+ - !ruby/object:Gem::Version
134
+ version: 1.0.3
135
+ type: :runtime
136
+ version_requirements: *id011
137
+ - !ruby/object:Gem::Dependency
138
+ name: multi_xml
139
+ prerelease: false
140
+ requirement: &id012 !ruby/object:Gem::Requirement
141
+ none: false
142
+ requirements:
143
+ - - ~>
144
+ - !ruby/object:Gem::Version
145
+ version: 0.2.2
146
+ type: :runtime
147
+ version_requirements: *id012
148
148
  description: Ruby wrapper for the RubyGems.org API
149
149
  email:
150
- - sferik@gmail.com
150
+ - sferik@gmail.com
151
151
  executables: []
152
152
 
153
153
  extensions: []
@@ -155,39 +155,43 @@ extensions: []
155
155
  extra_rdoc_files: []
156
156
 
157
157
  files:
158
- - .gemtest
159
- - .gitignore
160
- - .rspec
161
- - .travis.yml
162
- - .yardopts
163
- - Gemfile
164
- - LICENSE.md
165
- - README.md
166
- - Rakefile
167
- - gems.gemspec
168
- - lib/gems.rb
169
- - lib/gems/client.rb
170
- - lib/gems/configuration.rb
171
- - lib/gems/connection.rb
172
- - lib/gems/request.rb
173
- - lib/gems/version.rb
174
- - spec/fixtures/add_owner.json
175
- - spec/fixtures/api_key
176
- - spec/fixtures/coulda.json
177
- - spec/fixtures/dependencies
178
- - spec/fixtures/downloads.json
179
- - spec/fixtures/gems.json
180
- - spec/fixtures/gems.xml
181
- - spec/fixtures/owners.json
182
- - spec/fixtures/rails.json
183
- - spec/fixtures/rails.xml
184
- - spec/fixtures/remove_owner.json
185
- - spec/fixtures/search.json
186
- - spec/fixtures/search.xml
187
- - spec/fixtures/web_hooks.json
188
- - spec/gems/client_spec.rb
189
- - spec/gems_spec.rb
190
- - spec/helper.rb
158
+ - .gemtest
159
+ - .gitignore
160
+ - .rspec
161
+ - .travis.yml
162
+ - .yardopts
163
+ - Gemfile
164
+ - LICENSE.md
165
+ - README.md
166
+ - Rakefile
167
+ - gems.gemspec
168
+ - lib/gems.rb
169
+ - lib/gems/client.rb
170
+ - lib/gems/configuration.rb
171
+ - lib/gems/connection.rb
172
+ - lib/gems/request.rb
173
+ - lib/gems/version.rb
174
+ - spec/fixtures/add_owner.json
175
+ - spec/fixtures/add_web_hook
176
+ - spec/fixtures/api_key
177
+ - spec/fixtures/coulda.json
178
+ - spec/fixtures/dependencies
179
+ - spec/fixtures/downloads.json
180
+ - spec/fixtures/fire_web_hook
181
+ - spec/fixtures/gems.json
182
+ - spec/fixtures/gems.xml
183
+ - spec/fixtures/owners.json
184
+ - spec/fixtures/owners.yaml
185
+ - spec/fixtures/rails.json
186
+ - spec/fixtures/rails.xml
187
+ - spec/fixtures/remove_owner.json
188
+ - spec/fixtures/remove_web_hook
189
+ - spec/fixtures/search.json
190
+ - spec/fixtures/search.xml
191
+ - spec/fixtures/web_hooks.json
192
+ - spec/gems/client_spec.rb
193
+ - spec/gems_spec.rb
194
+ - spec/helper.rb
191
195
  has_rdoc: true
192
196
  homepage: https://github.com/sferik/gems
193
197
  licenses: []
@@ -196,41 +200,45 @@ post_install_message:
196
200
  rdoc_options: []
197
201
 
198
202
  require_paths:
199
- - lib
203
+ - lib
200
204
  required_ruby_version: !ruby/object:Gem::Requirement
201
205
  none: false
202
206
  requirements:
203
- - - ">="
204
- - !ruby/object:Gem::Version
205
- version: "0"
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: "0"
206
210
  required_rubygems_version: !ruby/object:Gem::Requirement
207
211
  none: false
208
212
  requirements:
209
- - - ">="
210
- - !ruby/object:Gem::Version
211
- version: "0"
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: "0"
212
216
  requirements: []
213
217
 
214
218
  rubyforge_project:
215
- rubygems_version: 1.5.3
219
+ rubygems_version: 1.5.1
216
220
  signing_key:
217
221
  specification_version: 3
218
222
  summary: Ruby wrapper for the RubyGems.org API
219
223
  test_files:
220
- - spec/fixtures/add_owner.json
221
- - spec/fixtures/api_key
222
- - spec/fixtures/coulda.json
223
- - spec/fixtures/dependencies
224
- - spec/fixtures/downloads.json
225
- - spec/fixtures/gems.json
226
- - spec/fixtures/gems.xml
227
- - spec/fixtures/owners.json
228
- - spec/fixtures/rails.json
229
- - spec/fixtures/rails.xml
230
- - spec/fixtures/remove_owner.json
231
- - spec/fixtures/search.json
232
- - spec/fixtures/search.xml
233
- - spec/fixtures/web_hooks.json
234
- - spec/gems/client_spec.rb
235
- - spec/gems_spec.rb
236
- - spec/helper.rb
224
+ - spec/fixtures/add_owner.json
225
+ - spec/fixtures/add_web_hook
226
+ - spec/fixtures/api_key
227
+ - spec/fixtures/coulda.json
228
+ - spec/fixtures/dependencies
229
+ - spec/fixtures/downloads.json
230
+ - spec/fixtures/fire_web_hook
231
+ - spec/fixtures/gems.json
232
+ - spec/fixtures/gems.xml
233
+ - spec/fixtures/owners.json
234
+ - spec/fixtures/owners.yaml
235
+ - spec/fixtures/rails.json
236
+ - spec/fixtures/rails.xml
237
+ - spec/fixtures/remove_owner.json
238
+ - spec/fixtures/remove_web_hook
239
+ - spec/fixtures/search.json
240
+ - spec/fixtures/search.xml
241
+ - spec/fixtures/web_hooks.json
242
+ - spec/gems/client_spec.rb
243
+ - spec/gems_spec.rb
244
+ - spec/helper.rb