rabbitmq_http_api_client 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8bdde06a8a0e17b0b5282ea1761d221348fa648a
4
- data.tar.gz: a08d3b1ed7f2cea69c307c568bf414d0bad61d08
3
+ metadata.gz: 596f116b77ab889cb05cdd85783b4215d1d876db
4
+ data.tar.gz: 3a480dc5177104fc06aacc23ac769ce6a5a414ee
5
5
  SHA512:
6
- metadata.gz: 3d3022d4d14a667198474ff9254a0b6d8c91d55254cf8a60981dd2ac9804c54d97b5caa015d1804d4b885e322310ab7b57a91ff37ea07c07b9f9d9c2c51dc4b8
7
- data.tar.gz: 0584a8e40a2e02c4f96776e30ea92aa2d38e5dc92ec156f0ec86c87188881f10318b40effe684f6c0ad846b197411b1f402977f1b8478cc7411f8546e66a582c
6
+ metadata.gz: 1599452a4274adc34b01b08a7f2d0fdfd714d71b61cc2cc876b56ad237ac15bdea3019e535783c488572938d920dfa2b42df55572ff9fbc678dec9c3dcef85df
7
+ data.tar.gz: 1b1a9c774f0f3248818d802f6946370a45bba4edc4c99851db116a7bcb44106eff42431722e1c5f94077f7077b1bb564ce127e361a654014ebb3cc684f207ec2
data/.travis.yml CHANGED
@@ -1,6 +1,7 @@
1
1
  bundler_args: --without development
2
2
  script: "bundle exec rspec -cfs spec"
3
3
  rvm:
4
+ - "2.1"
4
5
  - "2.0"
5
6
  - "1.9.3"
6
7
  - "jruby-19mode"
data/ChangeLog.md CHANGED
@@ -1,3 +1,16 @@
1
+ ## Changes Between 1.0.0 and 1.1.0
2
+
3
+ ### declare_exchange
4
+
5
+ It is now possible to declare an exchange over HTTP API using `RabbitMQ::HTTP::Client#declare_exchange`:
6
+
7
+ ``` ruby
8
+ c.declare_exchange("/", exchange_name, :durable => false, :type => "fanout")
9
+ ```
10
+
11
+ Contributed by Jake Davis (Simple).
12
+
13
+
1
14
  ## Changes Between 0.9.0 and 1.0.0
2
15
 
3
16
  ### Hashi Upgrade
data/README.md CHANGED
@@ -18,6 +18,7 @@ and will support more HTTP API features in the future
18
18
 
19
19
  ## Supported Ruby Versions
20
20
 
21
+ * MRI 2.1
21
22
  * MRI 2.0
22
23
  * MRI 1.9.3
23
24
  * JRuby 1.7+
@@ -358,7 +359,7 @@ ps = client.clear_permissions_of("/", "guest")
358
359
 
359
360
  Double-licensed under the MIT and Mozilla Public License (same as RabbitMQ).
360
361
 
361
- (c) Michael S. Klishin, 2012-2013.
362
+ (c) Michael S. Klishin, 2012-2014.
362
363
 
363
364
 
364
365
  [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/ruby-amqp/rabbitmq_http_api_client/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
@@ -110,6 +110,21 @@ module RabbitMQ
110
110
  decode_resource_collection(@connection.get(path))
111
111
  end
112
112
 
113
+ def declare_exchange(vhost, name, attributes = {})
114
+ opts = {
115
+ :type => "direct",
116
+ :auto_delete => false,
117
+ :durable => true,
118
+ :arguments => {}
119
+ }.merge(attributes)
120
+
121
+ response = @connection.put("/api/exchanges/#{uri_encode(vhost)}/#{uri_encode(name)}") do |req|
122
+ req.headers['Content-Type'] = 'application/json'
123
+ req.body = MultiJson.dump(opts)
124
+ end
125
+ decode_resource(response)
126
+ end
127
+
113
128
  def exchange_info(vhost, name)
114
129
  decode_resource(@connection.get("/api/exchanges/#{uri_encode(vhost)}/#{uri_encode(name)}"))
115
130
  end
@@ -164,7 +179,6 @@ module RabbitMQ
164
179
  decode_resource_collection(response)
165
180
  end
166
181
 
167
-
168
182
  def list_bindings(vhost = nil)
169
183
  path = if vhost.nil?
170
184
  "/api/bindings"
@@ -182,7 +196,7 @@ module RabbitMQ
182
196
  def queue_binding_info(vhost, queue, exchange, properties_key)
183
197
  decode_resource(@connection.get("/api/bindings/#{uri_encode(vhost)}/e/#{uri_encode(exchange)}/q/#{uri_encode(queue)}/#{uri_encode(properties_key)}"))
184
198
  end
185
-
199
+
186
200
  def bind_queue(vhost, queue, exchange, routing_key, arguments = [])
187
201
  resp = @connection.post("/api/bindings/#{uri_encode(vhost)}/e/#{uri_encode(exchange)}/q/#{uri_encode(queue)}") do |req|
188
202
  req.headers['Content-Type'] = 'application/json'
@@ -190,7 +204,7 @@ module RabbitMQ
190
204
  end
191
205
  resp.headers['location']
192
206
  end
193
-
207
+
194
208
  def delete_queue_binding(vhost, queue, exchange, properties_key)
195
209
  resp = @connection.delete("/api/bindings/#{uri_encode(vhost)}/e/#{uri_encode(exchange)}/q/#{uri_encode(queue)}/#{uri_encode(properties_key)}")
196
210
  resp.success?
@@ -1,7 +1,7 @@
1
1
  module RabbitMQ
2
2
  module HTTP
3
3
  class Client
4
- VERSION = "1.0.0"
4
+ VERSION = "1.1.0"
5
5
  end
6
6
  end
7
7
  end
@@ -269,6 +269,21 @@ describe RabbitMQ::HTTP::Client do
269
269
  end
270
270
  end
271
271
 
272
+ describe "PUT /api/exchanges/:vhost/:name" do
273
+ before :all do
274
+ @channel = @connection.create_channel
275
+ end
276
+
277
+ let(:exchange_name) { "httpdeclared" }
278
+
279
+ it "declares an exchange" do
280
+ subject.declare_exchange("/", exchange_name, :durable => false, :type => "fanout")
281
+
282
+ x = @channel.fanout(exchange_name, :durable => false, :auto_delete => false)
283
+ x.delete
284
+ end
285
+ end
286
+
272
287
  describe "GET /api/exchanges/:vhost/:name/bindings/source" do
273
288
  before :all do
274
289
  @channel = @connection.create_channel
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rabbitmq_http_api_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Klishin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-21 00:00:00.000000000 Z
11
+ date: 2014-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie
@@ -122,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
122
  version: '0'
123
123
  requirements: []
124
124
  rubyforge_project:
125
- rubygems_version: 2.1.11
125
+ rubygems_version: 2.2.2
126
126
  signing_key:
127
127
  specification_version: 4
128
128
  summary: RabbitMQ HTTP API client for Ruby