ears 0.3.0 → 0.3.1
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/CHANGELOG.md +6 -0
- data/Gemfile.lock +1 -1
- data/lib/ears/consumer.rb +4 -11
- data/lib/ears/consumer_wrapper.rb +33 -0
- data/lib/ears/setup.rb +3 -3
- data/lib/ears/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d16a56d89359232938fc2e04641e7db0f45440bd6cee7770b8e7d0be30fb014
|
4
|
+
data.tar.gz: fd3f8ce9db2ec52e646593b57c0f0b868d13fc5edb09c66e4ee7f345e49cd605
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d36a71c0a123865108370bdfa167a33128331b35626556794becb972b4ead16368df897f4cb6c998926c5b353e095580a67f7687cc111a2f54c2c80f84b10fb9
|
7
|
+
data.tar.gz: 8ed9d81e0da9cc807f15a81faf72dc88763e0482d31db53fc0f8b720be032bb3ccc657e5caa03bbefdf1816e2b69dd069230f2ac6a223cb56814c4237ee3d8f9
|
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
data/lib/ears/consumer.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'bunny'
|
2
2
|
|
3
3
|
module Ears
|
4
|
-
class Consumer
|
4
|
+
class Consumer
|
5
5
|
class InvalidReturnError < StandardError
|
6
6
|
def initialize(value)
|
7
7
|
super(
|
@@ -49,7 +49,7 @@ module Ears
|
|
49
49
|
def work_proc
|
50
50
|
->(delivery_info, metadata, payload) do
|
51
51
|
work(delivery_info, metadata, payload).tap do |result|
|
52
|
-
|
52
|
+
verify_result(result)
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
@@ -60,15 +60,8 @@ module Ears
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
-
def
|
64
|
-
|
65
|
-
when :ack
|
66
|
-
channel.ack(delivery_tag, false)
|
67
|
-
when :reject
|
68
|
-
channel.reject(delivery_tag)
|
69
|
-
when :requeue
|
70
|
-
channel.reject(delivery_tag, true)
|
71
|
-
else
|
63
|
+
def verify_result(result)
|
64
|
+
unless %i[ack reject requeue].include?(result)
|
72
65
|
raise InvalidReturnError, result
|
73
66
|
end
|
74
67
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'bunny'
|
2
|
+
|
3
|
+
module Ears
|
4
|
+
class ConsumerWrapper < Bunny::Consumer
|
5
|
+
def initialize(consumer, channel, queue, consumer_tag, arguments = {})
|
6
|
+
@consumer = consumer
|
7
|
+
super(channel, queue, consumer_tag, false, false, arguments)
|
8
|
+
end
|
9
|
+
|
10
|
+
def process_delivery(delivery_info, metadata, payload)
|
11
|
+
consumer
|
12
|
+
.process_delivery(delivery_info, metadata, payload)
|
13
|
+
.tap { |result| process_result(result, delivery_info.delivery_tag) }
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
attr_reader :consumer
|
19
|
+
|
20
|
+
def process_result(result, delivery_tag)
|
21
|
+
case result
|
22
|
+
when :ack
|
23
|
+
channel.ack(delivery_tag, false)
|
24
|
+
when :reject
|
25
|
+
channel.reject(delivery_tag)
|
26
|
+
when :requeue
|
27
|
+
channel.reject(delivery_tag, true)
|
28
|
+
else
|
29
|
+
raise InvalidReturnError, result
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/ears/setup.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'bunny'
|
2
2
|
require 'ears/consumer'
|
3
|
+
require 'ears/consumer_wrapper'
|
3
4
|
|
4
5
|
module Ears
|
5
6
|
class Setup
|
@@ -27,12 +28,11 @@ module Ears
|
|
27
28
|
private
|
28
29
|
|
29
30
|
def create_consumer(queue, consumer_class, args, number)
|
30
|
-
|
31
|
+
ConsumerWrapper.new(
|
32
|
+
consumer_class.new,
|
31
33
|
queue.channel,
|
32
34
|
queue,
|
33
35
|
"#{consumer_class.name}-#{number}",
|
34
|
-
false,
|
35
|
-
false,
|
36
36
|
args,
|
37
37
|
)
|
38
38
|
end
|
data/lib/ears/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ears
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mario Mainz
|
@@ -131,6 +131,7 @@ files:
|
|
131
131
|
- lib/ears.rb
|
132
132
|
- lib/ears/configuration.rb
|
133
133
|
- lib/ears/consumer.rb
|
134
|
+
- lib/ears/consumer_wrapper.rb
|
134
135
|
- lib/ears/middlewares/appsignal.rb
|
135
136
|
- lib/ears/middlewares/json.rb
|
136
137
|
- lib/ears/setup.rb
|