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 +4 -4
- data/ivory_tower.gemspec +1 -0
- data/lib/ivory_tower/consumer.rb +4 -0
- data/lib/ivory_tower/queue.rb +7 -7
- data/lib/ivory_tower/version.rb +1 -1
- data/lib/ivory_tower.rb +1 -0
- data/spec/integration/sending_a_message_spec.rb +14 -1
- data/spec/spec_helper.rb +2 -2
- data/spec/unit/consumer_spec.rb +12 -0
- data/spec/unit/queue_spec.rb +8 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd1f4d0e215ca1b4f98b68e0f3420b5bd02c3472
|
4
|
+
data.tar.gz: dc9b3dce1535033b7dfb2d605337693d0086e3b5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91ee17b56c2f4036a8598a426787bd794d43a4d037d9f1637bb6416ec31fa9075b06efee2e2a216b666acb34f67e05a9932e99e21cd0586573832cb50ef685b2
|
7
|
+
data.tar.gz: e529257a9acae03ef40b01c0c98328052a2161469e44006d07592fb40bae7f3fcef1465bca8e9b47c425155443251ff4af7f928213e399c21959c416e2f58a14
|
data/ivory_tower.gemspec
CHANGED
data/lib/ivory_tower/consumer.rb
CHANGED
data/lib/ivory_tower/queue.rb
CHANGED
@@ -13,7 +13,7 @@ class IvoryTower::Queue
|
|
13
13
|
channel.ack delivery_info.delivery_tag
|
14
14
|
end
|
15
15
|
ensure
|
16
|
-
|
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
|
data/lib/ivory_tower/version.rb
CHANGED
data/lib/ivory_tower.rb
CHANGED
@@ -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(:
|
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|
|
data/spec/unit/consumer_spec.rb
CHANGED
@@ -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
|
data/spec/unit/queue_spec.rb
CHANGED
@@ -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.
|
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-
|
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
|