ivory_tower 0.0.2 → 0.0.3

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