ivory_tower 0.0.2 → 0.0.3

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: 30d9f405000f6d819ffb604dab705ffa7e4e7796
4
- data.tar.gz: 3434716e4fa4ab6f270856b0d8aa8af7d179ee24
3
+ metadata.gz: bd1f4d0e215ca1b4f98b68e0f3420b5bd02c3472
4
+ data.tar.gz: dc9b3dce1535033b7dfb2d605337693d0086e3b5
5
5
  SHA512:
6
- metadata.gz: 7ebcb62f2dffab4b8d3cd022bda7caccda125039974ae264fb96a2d11c9398eca8d0d4cc665f9e614fa26ee624c8793303e5a22a7a3442d17b15038af203581d
7
- data.tar.gz: 430ec2dde1b1fc193875b418b1343af5c2edf42bf7ef11d53d24e70c260d6bc6f5f039b177d3019f0c864ce7264a9dd80fd53e841c4e0f61cb2ff3423b2203b1
6
+ metadata.gz: 91ee17b56c2f4036a8598a426787bd794d43a4d037d9f1637bb6416ec31fa9075b06efee2e2a216b666acb34f67e05a9932e99e21cd0586573832cb50ef685b2
7
+ data.tar.gz: e529257a9acae03ef40b01c0c98328052a2161469e44006d07592fb40bae7f3fcef1465bca8e9b47c425155443251ff4af7f928213e399c21959c416e2f58a14
data/ivory_tower.gemspec CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "rake"
23
23
  spec.add_development_dependency "rspec"
24
24
  spec.add_development_dependency "guard-rspec"
25
+ spec.add_development_dependency "pry-byebug"
25
26
 
26
27
  spec.add_dependency "bunny"
27
28
  end
@@ -6,4 +6,8 @@ module IvoryTower::Consumer
6
6
  consume(message)
7
7
  end
8
8
  end
9
+
10
+ def stop
11
+ queue.close
12
+ end
9
13
  end
@@ -13,7 +13,7 @@ class IvoryTower::Queue
13
13
  channel.ack delivery_info.delivery_tag
14
14
  end
15
15
  ensure
16
- close_connection
16
+ close
17
17
  end
18
18
 
19
19
  def produce(message)
@@ -28,18 +28,18 @@ class IvoryTower::Queue
28
28
  bunny_queue.purge
29
29
  end
30
30
 
31
+ def close
32
+ unless [:closed, :closing].include? channel.connection.status
33
+ channel.connection.close
34
+ end
35
+ end
36
+
31
37
  private
32
38
 
33
39
  def subscribe_options
34
40
  {manual_ack: true, block: true}
35
41
  end
36
42
 
37
- def close_connection
38
- unless channel.connection.status == :closed
39
- channel.connection.close
40
- end
41
- end
42
-
43
43
  def bunny_queue
44
44
  @bunny_queue
45
45
  end
@@ -1,3 +1,3 @@
1
1
  module IvoryTower
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/ivory_tower.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require "ivory_tower/version"
2
2
  require "bunny"
3
+ require 'pry-byebug'
3
4
 
4
5
  module IvoryTower
5
6
  require "ivory_tower/bunny_factory"
@@ -17,7 +17,7 @@ end
17
17
  describe 'Sending a message' do
18
18
  before :each do
19
19
  allow_any_instance_of(IvoryTower::Queue).to receive(:subscribe_options).and_return(manual_ack: true, block: false)
20
- allow_any_instance_of(IvoryTower::Queue).to receive(:close_connection)
20
+ allow_any_instance_of(IvoryTower::Queue).to receive(:close)
21
21
  end
22
22
 
23
23
  after :each do
@@ -44,3 +44,16 @@ describe 'Sending a message' do
44
44
  expect($addition_value).to eq 4
45
45
  end
46
46
  end
47
+
48
+ describe 'running the consumer' do
49
+ # is this necessary? won't the ensure block catch this?
50
+ it 'answers to stop' do
51
+ consumer = AdditionConsumer.new
52
+ t = Thread.new do
53
+ consumer.run
54
+ end
55
+ connection = consumer.send(:queue).send(:channel).connection
56
+ expect(connection).to receive(:close).and_call_original
57
+ consumer.stop
58
+ end
59
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  $LOAD_PATH << File.expand_path('../../lib', __FILE__)
2
2
  require 'ivory_tower'
3
3
 
4
- FakeQueue = Struct.new(:channel)
4
+ FakeQueue = Struct.new(:channel, :close)
5
5
  FakeChannel = Struct.new(:connection)
6
6
  FakeConnection = Struct.new(:status, :close)
7
7
 
8
8
  def mock_queue
9
- FakeQueue.new(FakeChannel.new(FakeConnection.new(:open, nil)))
9
+ FakeQueue.new(FakeChannel.new(FakeConnection.new(:open, nil)), nil)
10
10
  end
11
11
 
12
12
  RSpec.configure do |config|
@@ -24,4 +24,16 @@ describe IvoryTower::Consumer do
24
24
  expect($multiply_result).to eq 8
25
25
  end
26
26
  end
27
+
28
+ describe "#stop" do
29
+ it "closes the connection" do
30
+ mocked = mock_queue
31
+ expect(IvoryTower::Queue).to receive(:new).with("Multiply").and_return(mocked)
32
+
33
+ mult = MultiplyConsumer.new
34
+
35
+ expect(mocked).to receive(:close)
36
+ mult.stop
37
+ end
38
+ end
27
39
  end
@@ -28,4 +28,12 @@ describe IvoryTower::Queue do
28
28
  queue.produce(message)
29
29
  end
30
30
  end
31
+
32
+ describe "#close" do
33
+ it "closes the connection" do
34
+ queue = IvoryTower::Queue.new "Modulus"
35
+ expect(stub_queue.channel.connection).to receive(:close)
36
+ queue.close
37
+ end
38
+ end
31
39
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ivory_tower
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ecuageo
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-07-10 00:00:00.000000000 Z
12
+ date: 2014-07-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -67,6 +67,20 @@ dependencies:
67
67
  - - '>='
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: pry-byebug
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
70
84
  - !ruby/object:Gem::Dependency
71
85
  name: bunny
72
86
  requirement: !ruby/object:Gem::Requirement