hutch 0.18.0 → 1.1.0
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 +5 -5
- data/.gitignore +3 -0
- data/.rspec +1 -0
- data/.travis.yml +20 -8
- data/.yardopts +5 -0
- data/CHANGELOG.md +466 -2
- data/Gemfile +18 -4
- data/Guardfile +13 -4
- data/LICENSE +2 -1
- data/README.md +397 -32
- data/Rakefile +8 -1
- data/bin/ci/before_build.sh +20 -0
- data/bin/ci/install_on_debian.sh +46 -0
- data/hutch.gemspec +6 -7
- data/lib/hutch/acknowledgements/base.rb +16 -0
- data/lib/hutch/acknowledgements/nack_on_all_failures.rb +19 -0
- data/lib/hutch/adapters/march_hare.rb +1 -1
- data/lib/hutch/broker.rb +127 -103
- data/lib/hutch/cli.rb +66 -25
- data/lib/hutch/config.rb +230 -55
- data/lib/hutch/consumer.rb +42 -3
- data/lib/hutch/error_handlers/airbrake.rb +44 -16
- data/lib/hutch/error_handlers/base.rb +15 -0
- data/lib/hutch/error_handlers/bugsnag.rb +30 -0
- data/lib/hutch/error_handlers/honeybadger.rb +33 -18
- data/lib/hutch/error_handlers/logger.rb +12 -6
- data/lib/hutch/error_handlers/rollbar.rb +28 -0
- data/lib/hutch/error_handlers/sentry.rb +15 -12
- data/lib/hutch/error_handlers/sentry_raven.rb +31 -0
- data/lib/hutch/error_handlers.rb +3 -0
- data/lib/hutch/exceptions.rb +8 -1
- data/lib/hutch/logging.rb +5 -5
- data/lib/hutch/message.rb +2 -4
- data/lib/hutch/publisher.rb +75 -0
- data/lib/hutch/serializers/identity.rb +19 -0
- data/lib/hutch/serializers/json.rb +22 -0
- data/lib/hutch/tracers/datadog.rb +17 -0
- data/lib/hutch/tracers.rb +1 -0
- data/lib/hutch/version.rb +1 -2
- data/lib/hutch/waiter.rb +104 -0
- data/lib/hutch/worker.rb +81 -75
- data/lib/hutch.rb +15 -6
- data/lib/yard-settings/handler.rb +38 -0
- data/lib/yard-settings/yard-settings.rb +2 -0
- data/spec/hutch/broker_spec.rb +162 -77
- data/spec/hutch/cli_spec.rb +16 -3
- data/spec/hutch/config_spec.rb +121 -22
- data/spec/hutch/consumer_spec.rb +82 -4
- data/spec/hutch/error_handlers/airbrake_spec.rb +25 -10
- data/spec/hutch/error_handlers/bugsnag_spec.rb +55 -0
- data/spec/hutch/error_handlers/honeybadger_spec.rb +24 -2
- data/spec/hutch/error_handlers/logger_spec.rb +14 -1
- data/spec/hutch/error_handlers/rollbar_spec.rb +45 -0
- data/spec/hutch/error_handlers/sentry_raven_spec.rb +37 -0
- data/spec/hutch/error_handlers/sentry_spec.rb +21 -2
- data/spec/hutch/logger_spec.rb +12 -6
- data/spec/hutch/message_spec.rb +2 -2
- data/spec/hutch/serializers/json_spec.rb +17 -0
- data/spec/hutch/tracers/datadog_spec.rb +44 -0
- data/spec/hutch/waiter_spec.rb +51 -0
- data/spec/hutch/worker_spec.rb +89 -5
- data/spec/spec_helper.rb +7 -5
- data/templates/default/class/html/settings.erb +0 -0
- data/templates/default/class/setup.rb +4 -0
- data/templates/default/fulldoc/html/css/hutch.css +13 -0
- data/templates/default/layout/html/setup.rb +7 -0
- data/templates/default/method_details/html/settings.erb +5 -0
- data/templates/default/method_details/setup.rb +4 -0
- data/templates/default/method_details/text/settings.erb +0 -0
- data/templates/default/module/html/settings.erb +40 -0
- data/templates/default/module/setup.rb +4 -0
- metadata +62 -43
- data/circle.yml +0 -3
data/spec/hutch/worker_spec.rb
CHANGED
@@ -3,10 +3,23 @@ require 'hutch/worker'
|
|
3
3
|
|
4
4
|
describe Hutch::Worker do
|
5
5
|
let(:consumer) { double('Consumer', routing_keys: %w( a b c ),
|
6
|
-
get_queue_name: 'consumer', get_arguments: {}
|
6
|
+
get_queue_name: 'consumer', get_arguments: {},
|
7
|
+
get_serializer: nil) }
|
7
8
|
let(:consumers) { [consumer, double('Consumer')] }
|
8
9
|
let(:broker) { Hutch::Broker.new }
|
9
|
-
|
10
|
+
let(:setup_procs) { Array.new(2) { Proc.new {} } }
|
11
|
+
subject(:worker) { Hutch::Worker.new(broker, consumers, setup_procs) }
|
12
|
+
|
13
|
+
describe ".#run" do
|
14
|
+
it "calls each setup proc" do
|
15
|
+
setup_procs.each { |prc| expect(prc).to receive(:call) }
|
16
|
+
allow(worker).to receive(:setup_queues)
|
17
|
+
allow(Hutch::Waiter).to receive(:wait_until_signaled)
|
18
|
+
allow(broker).to receive(:stop)
|
19
|
+
|
20
|
+
worker.run
|
21
|
+
end
|
22
|
+
end
|
10
23
|
|
11
24
|
describe '#setup_queues' do
|
12
25
|
it 'sets up queues for each of the consumers' do
|
@@ -19,7 +32,6 @@ describe Hutch::Worker do
|
|
19
32
|
|
20
33
|
describe '#setup_queue' do
|
21
34
|
let(:queue) { double('Queue', bind: nil, subscribe: nil) }
|
22
|
-
before { allow(worker).to receive_messages(consumer_queue: queue) }
|
23
35
|
before { allow(broker).to receive_messages(queue: queue, bind_queue: nil) }
|
24
36
|
|
25
37
|
it 'creates a queue' do
|
@@ -33,9 +45,27 @@ describe Hutch::Worker do
|
|
33
45
|
end
|
34
46
|
|
35
47
|
it 'sets up a subscription' do
|
36
|
-
expect(queue).to receive(:subscribe).with(manual_ack: true)
|
48
|
+
expect(queue).to receive(:subscribe).with(consumer_tag: %r(^hutch\-.{36}$), manual_ack: true)
|
37
49
|
worker.setup_queue(consumer)
|
38
50
|
end
|
51
|
+
|
52
|
+
context 'with a configured consumer tag prefix' do
|
53
|
+
before { Hutch::Config.set(:consumer_tag_prefix, 'appname') }
|
54
|
+
|
55
|
+
it 'sets up a subscription with the configured tag prefix' do
|
56
|
+
expect(queue).to receive(:subscribe).with(consumer_tag: %r(^appname\-.{36}$), manual_ack: true)
|
57
|
+
worker.setup_queue(consumer)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'with a configured consumer tag prefix that is too long' do
|
62
|
+
let(:maximum_size) { 255 - SecureRandom.uuid.size - 1 }
|
63
|
+
before { Hutch::Config.set(:consumer_tag_prefix, 'a'.*(maximum_size + 1)) }
|
64
|
+
|
65
|
+
it 'raises an error' do
|
66
|
+
expect { worker.setup_queue(consumer) }.to raise_error(/Tag must be 255 bytes long at most/)
|
67
|
+
end
|
68
|
+
end
|
39
69
|
end
|
40
70
|
|
41
71
|
describe '#handle_message' do
|
@@ -43,7 +73,7 @@ describe Hutch::Worker do
|
|
43
73
|
let(:consumer_instance) { double('Consumer instance') }
|
44
74
|
let(:delivery_info) { double('Delivery Info', routing_key: '',
|
45
75
|
delivery_tag: 'dt') }
|
46
|
-
let(:properties) { double('Properties', message_id: nil) }
|
76
|
+
let(:properties) { double('Properties', message_id: nil, content_type: "application/json") }
|
47
77
|
before { allow(consumer).to receive_messages(new: consumer_instance) }
|
48
78
|
before { allow(broker).to receive(:ack) }
|
49
79
|
before { allow(broker).to receive(:nack) }
|
@@ -62,6 +92,25 @@ describe Hutch::Worker do
|
|
62
92
|
worker.handle_message(consumer, delivery_info, properties, payload)
|
63
93
|
end
|
64
94
|
|
95
|
+
context 'when the consumer fails and a requeue is configured' do
|
96
|
+
|
97
|
+
it 'requeues the message' do
|
98
|
+
allow(consumer_instance).to receive(:process).and_raise('failed')
|
99
|
+
requeuer = double
|
100
|
+
allow(requeuer).to receive(:handle) { |delivery_info, properties, broker, e|
|
101
|
+
broker.requeue delivery_info.delivery_tag
|
102
|
+
true
|
103
|
+
}
|
104
|
+
allow(worker).to receive(:error_acknowledgements).and_return([requeuer])
|
105
|
+
expect(broker).to_not receive(:ack)
|
106
|
+
expect(broker).to_not receive(:nack)
|
107
|
+
expect(broker).to receive(:requeue)
|
108
|
+
|
109
|
+
worker.handle_message(consumer, delivery_info, properties, payload)
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
|
65
114
|
context 'when the consumer raises an exception' do
|
66
115
|
before { allow(consumer_instance).to receive(:process).and_raise('a consumer error') }
|
67
116
|
|
@@ -94,5 +143,40 @@ describe Hutch::Worker do
|
|
94
143
|
end
|
95
144
|
end
|
96
145
|
end
|
146
|
+
|
147
|
+
|
148
|
+
describe '#acknowledge_error' do
|
149
|
+
let(:delivery_info) { double('Delivery Info', routing_key: '',
|
150
|
+
delivery_tag: 'dt') }
|
151
|
+
let(:properties) { double('Properties', message_id: 'abc123') }
|
152
|
+
|
153
|
+
subject { worker.acknowledge_error delivery_info, properties, broker, StandardError.new }
|
154
|
+
|
155
|
+
it 'stops when it runs a successful acknowledgement' do
|
156
|
+
skip_ack = double handle: false
|
157
|
+
always_ack = double handle: true
|
158
|
+
never_used = double handle: true
|
159
|
+
|
160
|
+
allow(worker).
|
161
|
+
to receive(:error_acknowledgements).
|
162
|
+
and_return([skip_ack, always_ack, never_used])
|
163
|
+
|
164
|
+
expect(never_used).to_not receive(:handle)
|
165
|
+
|
166
|
+
subject
|
167
|
+
end
|
168
|
+
|
169
|
+
it 'defaults to nacking' do
|
170
|
+
skip_ack = double handle: false
|
171
|
+
|
172
|
+
allow(worker).
|
173
|
+
to receive(:error_acknowledgements).
|
174
|
+
and_return([skip_ack, skip_ack])
|
175
|
+
|
176
|
+
expect(broker).to receive(:nack)
|
177
|
+
|
178
|
+
subject
|
179
|
+
end
|
180
|
+
end
|
97
181
|
end
|
98
182
|
|
data/spec/spec_helper.rb
CHANGED
@@ -13,8 +13,10 @@ require 'raven'
|
|
13
13
|
require 'hutch'
|
14
14
|
require 'logger'
|
15
15
|
|
16
|
+
# set logger to be a null logger
|
17
|
+
Hutch::Logging.logger = Logger.new(File::NULL)
|
18
|
+
|
16
19
|
RSpec.configure do |config|
|
17
|
-
config.before(:all) { Hutch::Config.log_level = Logger::FATAL }
|
18
20
|
config.raise_errors_for_deprecations!
|
19
21
|
|
20
22
|
if defined?(JRUBY_VERSION)
|
@@ -22,6 +24,10 @@ RSpec.configure do |config|
|
|
22
24
|
else
|
23
25
|
config.filter_run_excluding adapter: :march_hare
|
24
26
|
end
|
27
|
+
|
28
|
+
config.mock_with :rspec do |mocks|
|
29
|
+
mocks.verify_partial_doubles = true
|
30
|
+
end
|
25
31
|
end
|
26
32
|
|
27
33
|
# Constants (classes, etc) defined within a block passed to this method
|
@@ -34,7 +40,3 @@ ensure
|
|
34
40
|
Object.send(:remove_const, constant)
|
35
41
|
end
|
36
42
|
end
|
37
|
-
|
38
|
-
def deep_copy(obj)
|
39
|
-
Marshal.load(Marshal.dump(obj))
|
40
|
-
end
|
File without changes
|
File without changes
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<% if object['setting_rows'] %>
|
2
|
+
<h2>
|
3
|
+
Configuration
|
4
|
+
</h2>
|
5
|
+
|
6
|
+
<div class="tags">
|
7
|
+
<table border="1" class="settings">
|
8
|
+
<thead>
|
9
|
+
<tr>
|
10
|
+
<th>
|
11
|
+
Setting name
|
12
|
+
</th>
|
13
|
+
<th>
|
14
|
+
Default value
|
15
|
+
</th>
|
16
|
+
<th>
|
17
|
+
Type
|
18
|
+
</th>
|
19
|
+
<th>
|
20
|
+
ENV variable
|
21
|
+
</th>
|
22
|
+
<th>
|
23
|
+
Description
|
24
|
+
</th>
|
25
|
+
</tr>
|
26
|
+
</thead>
|
27
|
+
<tbody>
|
28
|
+
<% for setting in object['setting_rows'] %>
|
29
|
+
<tr>
|
30
|
+
<td><tt><%= resolve_links "{Hutch::Config##{setting[:name]} #{setting[:name]}}" %></tt></td>
|
31
|
+
<td><%= setting[:default_value] %></td>
|
32
|
+
<td><%= setting[:type] %></td>
|
33
|
+
<td><tt>HUTCH_<%= setting[:name].upcase %></tt></td>
|
34
|
+
<td><%= html_markup_markdown setting[:first_line_of_description] %></td>
|
35
|
+
</tr>
|
36
|
+
<% end %>
|
37
|
+
</tbody>
|
38
|
+
</table>
|
39
|
+
</div>
|
40
|
+
<% end %>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hutch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Harry Marr
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bunny
|
@@ -16,14 +16,20 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: '2.16'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '3.0'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
27
|
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
29
|
+
version: '2.16'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3.0'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: carrot-top
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,56 +50,34 @@ dependencies:
|
|
44
50
|
requirements:
|
45
51
|
- - "~>"
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version: '1.
|
53
|
+
version: '1.14'
|
48
54
|
type: :runtime
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
52
58
|
- - "~>"
|
53
59
|
- !ruby/object:Gem::Version
|
54
|
-
version: '1.
|
60
|
+
version: '1.14'
|
55
61
|
- !ruby/object:Gem::Dependency
|
56
62
|
name: activesupport
|
57
63
|
requirement: !ruby/object:Gem::Requirement
|
58
64
|
requirements:
|
59
65
|
- - ">="
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
67
|
+
version: '4.2'
|
68
|
+
- - "<"
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '7'
|
62
71
|
type: :runtime
|
63
72
|
prerelease: false
|
64
73
|
version_requirements: !ruby/object:Gem::Requirement
|
65
74
|
requirements:
|
66
75
|
- - ">="
|
67
76
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
69
|
-
-
|
70
|
-
name: rspec
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
77
|
+
version: '4.2'
|
78
|
+
- - "<"
|
74
79
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
76
|
-
type: :development
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '3.0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: simplecov
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - "~>"
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 0.7.1
|
90
|
-
type: :development
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - "~>"
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 0.7.1
|
80
|
+
version: '7'
|
97
81
|
description: Hutch is a Ruby library for enabling asynchronous inter-service communication
|
98
82
|
using RabbitMQ.
|
99
83
|
email:
|
@@ -104,19 +88,24 @@ extensions: []
|
|
104
88
|
extra_rdoc_files: []
|
105
89
|
files:
|
106
90
|
- ".gitignore"
|
91
|
+
- ".rspec"
|
107
92
|
- ".travis.yml"
|
93
|
+
- ".yardopts"
|
108
94
|
- CHANGELOG.md
|
109
95
|
- Gemfile
|
110
96
|
- Guardfile
|
111
97
|
- LICENSE
|
112
98
|
- README.md
|
113
99
|
- Rakefile
|
100
|
+
- bin/ci/before_build.sh
|
101
|
+
- bin/ci/install_on_debian.sh
|
114
102
|
- bin/hutch
|
115
|
-
- circle.yml
|
116
103
|
- examples/consumer.rb
|
117
104
|
- examples/producer.rb
|
118
105
|
- hutch.gemspec
|
119
106
|
- lib/hutch.rb
|
107
|
+
- lib/hutch/acknowledgements/base.rb
|
108
|
+
- lib/hutch/acknowledgements/nack_on_all_failures.rb
|
120
109
|
- lib/hutch/adapter.rb
|
121
110
|
- lib/hutch/adapters/bunny.rb
|
122
111
|
- lib/hutch/adapters/march_hare.rb
|
@@ -126,35 +115,61 @@ files:
|
|
126
115
|
- lib/hutch/consumer.rb
|
127
116
|
- lib/hutch/error_handlers.rb
|
128
117
|
- lib/hutch/error_handlers/airbrake.rb
|
118
|
+
- lib/hutch/error_handlers/base.rb
|
119
|
+
- lib/hutch/error_handlers/bugsnag.rb
|
129
120
|
- lib/hutch/error_handlers/honeybadger.rb
|
130
121
|
- lib/hutch/error_handlers/logger.rb
|
122
|
+
- lib/hutch/error_handlers/rollbar.rb
|
131
123
|
- lib/hutch/error_handlers/sentry.rb
|
124
|
+
- lib/hutch/error_handlers/sentry_raven.rb
|
132
125
|
- lib/hutch/exceptions.rb
|
133
126
|
- lib/hutch/logging.rb
|
134
127
|
- lib/hutch/message.rb
|
128
|
+
- lib/hutch/publisher.rb
|
129
|
+
- lib/hutch/serializers/identity.rb
|
130
|
+
- lib/hutch/serializers/json.rb
|
135
131
|
- lib/hutch/tracers.rb
|
132
|
+
- lib/hutch/tracers/datadog.rb
|
136
133
|
- lib/hutch/tracers/newrelic.rb
|
137
134
|
- lib/hutch/tracers/null_tracer.rb
|
138
135
|
- lib/hutch/version.rb
|
136
|
+
- lib/hutch/waiter.rb
|
139
137
|
- lib/hutch/worker.rb
|
138
|
+
- lib/yard-settings/handler.rb
|
139
|
+
- lib/yard-settings/yard-settings.rb
|
140
140
|
- spec/hutch/broker_spec.rb
|
141
141
|
- spec/hutch/cli_spec.rb
|
142
142
|
- spec/hutch/config_spec.rb
|
143
143
|
- spec/hutch/consumer_spec.rb
|
144
144
|
- spec/hutch/error_handlers/airbrake_spec.rb
|
145
|
+
- spec/hutch/error_handlers/bugsnag_spec.rb
|
145
146
|
- spec/hutch/error_handlers/honeybadger_spec.rb
|
146
147
|
- spec/hutch/error_handlers/logger_spec.rb
|
148
|
+
- spec/hutch/error_handlers/rollbar_spec.rb
|
149
|
+
- spec/hutch/error_handlers/sentry_raven_spec.rb
|
147
150
|
- spec/hutch/error_handlers/sentry_spec.rb
|
148
151
|
- spec/hutch/logger_spec.rb
|
149
152
|
- spec/hutch/message_spec.rb
|
153
|
+
- spec/hutch/serializers/json_spec.rb
|
154
|
+
- spec/hutch/tracers/datadog_spec.rb
|
155
|
+
- spec/hutch/waiter_spec.rb
|
150
156
|
- spec/hutch/worker_spec.rb
|
151
157
|
- spec/hutch_spec.rb
|
152
158
|
- spec/spec_helper.rb
|
159
|
+
- templates/default/class/html/settings.erb
|
160
|
+
- templates/default/class/setup.rb
|
161
|
+
- templates/default/fulldoc/html/css/hutch.css
|
162
|
+
- templates/default/layout/html/setup.rb
|
163
|
+
- templates/default/method_details/html/settings.erb
|
164
|
+
- templates/default/method_details/setup.rb
|
165
|
+
- templates/default/method_details/text/settings.erb
|
166
|
+
- templates/default/module/html/settings.erb
|
167
|
+
- templates/default/module/setup.rb
|
153
168
|
homepage: https://github.com/gocardless/hutch
|
154
169
|
licenses:
|
155
170
|
- MIT
|
156
171
|
metadata: {}
|
157
|
-
post_install_message:
|
172
|
+
post_install_message:
|
158
173
|
rdoc_options: []
|
159
174
|
require_paths:
|
160
175
|
- lib
|
@@ -162,16 +177,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
162
177
|
requirements:
|
163
178
|
- - ">="
|
164
179
|
- !ruby/object:Gem::Version
|
165
|
-
version: '
|
180
|
+
version: '2.2'
|
166
181
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
167
182
|
requirements:
|
168
183
|
- - ">="
|
169
184
|
- !ruby/object:Gem::Version
|
170
185
|
version: '0'
|
171
186
|
requirements: []
|
172
|
-
|
173
|
-
|
174
|
-
signing_key:
|
187
|
+
rubygems_version: 3.1.4
|
188
|
+
signing_key:
|
175
189
|
specification_version: 4
|
176
190
|
summary: Easy inter-service communication using RabbitMQ.
|
177
191
|
test_files:
|
@@ -180,12 +194,17 @@ test_files:
|
|
180
194
|
- spec/hutch/config_spec.rb
|
181
195
|
- spec/hutch/consumer_spec.rb
|
182
196
|
- spec/hutch/error_handlers/airbrake_spec.rb
|
197
|
+
- spec/hutch/error_handlers/bugsnag_spec.rb
|
183
198
|
- spec/hutch/error_handlers/honeybadger_spec.rb
|
184
199
|
- spec/hutch/error_handlers/logger_spec.rb
|
200
|
+
- spec/hutch/error_handlers/rollbar_spec.rb
|
201
|
+
- spec/hutch/error_handlers/sentry_raven_spec.rb
|
185
202
|
- spec/hutch/error_handlers/sentry_spec.rb
|
186
203
|
- spec/hutch/logger_spec.rb
|
187
204
|
- spec/hutch/message_spec.rb
|
205
|
+
- spec/hutch/serializers/json_spec.rb
|
206
|
+
- spec/hutch/tracers/datadog_spec.rb
|
207
|
+
- spec/hutch/waiter_spec.rb
|
188
208
|
- spec/hutch/worker_spec.rb
|
189
209
|
- spec/hutch_spec.rb
|
190
210
|
- spec/spec_helper.rb
|
191
|
-
has_rdoc:
|
data/circle.yml
DELETED