vx-common-amqp 0.2.6 → 0.2.7

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: d22e0e16e443910a96c0200d9c7e01eec6f9c5b5
4
- data.tar.gz: b78374356e36e00925cff0f076673e7adea1f815
3
+ metadata.gz: 8605e89e5acbbd7370c06ebef9998c728b7b3d7f
4
+ data.tar.gz: a4798b252013ba3dede1a2267ea4c12a25a06171
5
5
  SHA512:
6
- metadata.gz: 13c65d9bbbd886758e22d4b712a0792c9386ffb9ecfd72c48c00926f8213efabbb03915b03fa590dac6e7e81c2338ddbd8d16d32a8eb9cd2d11e8e44fb976f22
7
- data.tar.gz: 046cab0abc468287b048036bd6491800a4cf3e1f2473a8645e5e9ed18fe139c22cfb1da683b496a03446d234b7f1636ed767f9774dc736eb317bf476dc6d8933
6
+ metadata.gz: 313792c6ca5f6972775168adf794351e4d6ae6686fa0274df5fb6d78f74a2a0c25b1e66d8b255a78fcbc7ee643d5650c59995dd678b3c4f7a85a801f33e18006
7
+ data.tar.gz: 620fe489e107e572336eb93118ef040da343c5b85dae9cd1bafced6950076e33588ee4d9ae860fe3e89e1d683bb948887625db0a0b657b97d97831ffe2dd582f
@@ -4,8 +4,14 @@ module Vx
4
4
  module Consumer::Subscribe
5
5
 
6
6
  def subscribe
7
- session.open
7
+ start do |x, q|
8
+ subscription_loop q
9
+ end
10
+ end
8
11
 
12
+ def start
13
+ rs = nil
14
+ session.open
9
15
  session.with_channel do
10
16
  x = declare_exchange
11
17
  q = declare_queue
@@ -15,11 +21,24 @@ module Vx
15
21
  q.bind(x, bind_options)
16
22
  debug "successfuly subscribed to #{q.name}:#{x.name}"
17
23
 
18
- subscription_loop q
24
+ rs = yield(x, q) if block_given?
19
25
  end
20
26
 
21
27
  debug "shutdown"
22
28
  end
29
+ rs
30
+ end
31
+
32
+ def pop(q)
33
+ unpacked = nil
34
+ delivery_info, properties, payload = q.pop(ack: ack)
35
+
36
+ if payload
37
+ debug "recieve ##{delivery_info.delivery_tag.to_i} #{payload.inspect}"
38
+ unpacked = deserialize_message properties, payload
39
+ end
40
+
41
+ [unpacked, delivery_info, properties]
23
42
  end
24
43
 
25
44
  private
@@ -1,7 +1,7 @@
1
1
  module Vx
2
2
  module Common
3
3
  module AMQP
4
- VERSION = "0.2.6"
4
+ VERSION = "0.2.7"
5
5
  end
6
6
  end
7
7
  end
@@ -312,5 +312,25 @@ describe Vx::Common::AMQP::Consumer do
312
312
  expect(subject).to have(3).items
313
313
  expect(subject.map(&:values).flatten).to eq [0,1,2]
314
314
  end
315
+
316
+ it "should receive mesasges using pop method" do
317
+ consumer_class.ack false
318
+ collected = []
319
+
320
+ Timeout.timeout(3) do
321
+ consumer_class.start do |_, q|
322
+ loop do
323
+ message, _, _ = consumer_class.pop(q)
324
+ collected << message
325
+ if message["n"] == 2
326
+ break
327
+ end
328
+ end
329
+ end
330
+ end
331
+
332
+ expect(collected).to have(3).items
333
+ expect(collected.map(&:values).flatten).to eq [0,1,2]
334
+ end
315
335
  end
316
336
  end
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.required_ruby_version = '>= 1.9.3'
22
22
 
23
- spec.add_runtime_dependency "bunny", "~> 1.0.0"
23
+ spec.add_runtime_dependency "bunny", "~> 1.0.6"
24
24
  spec.add_runtime_dependency "vx-common-rack-builder", "~> 0.0.2"
25
25
 
26
26
  spec.add_development_dependency "bundler", "~> 1.3"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vx-common-amqp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Galinsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-12-16 00:00:00.000000000 Z
11
+ date: 2013-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bunny
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.0
19
+ version: 1.0.6
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: 1.0.0
26
+ version: 1.0.6
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: vx-common-rack-builder
29
29
  requirement: !ruby/object:Gem::Requirement