hutch 0.18.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +3 -0
  3. data/.rspec +1 -0
  4. data/.travis.yml +20 -8
  5. data/.yardopts +5 -0
  6. data/CHANGELOG.md +466 -2
  7. data/Gemfile +18 -4
  8. data/Guardfile +13 -4
  9. data/LICENSE +2 -1
  10. data/README.md +397 -32
  11. data/Rakefile +8 -1
  12. data/bin/ci/before_build.sh +20 -0
  13. data/bin/ci/install_on_debian.sh +46 -0
  14. data/hutch.gemspec +6 -7
  15. data/lib/hutch/acknowledgements/base.rb +16 -0
  16. data/lib/hutch/acknowledgements/nack_on_all_failures.rb +19 -0
  17. data/lib/hutch/adapters/march_hare.rb +1 -1
  18. data/lib/hutch/broker.rb +127 -103
  19. data/lib/hutch/cli.rb +66 -25
  20. data/lib/hutch/config.rb +230 -55
  21. data/lib/hutch/consumer.rb +42 -3
  22. data/lib/hutch/error_handlers/airbrake.rb +44 -16
  23. data/lib/hutch/error_handlers/base.rb +15 -0
  24. data/lib/hutch/error_handlers/bugsnag.rb +30 -0
  25. data/lib/hutch/error_handlers/honeybadger.rb +33 -18
  26. data/lib/hutch/error_handlers/logger.rb +12 -6
  27. data/lib/hutch/error_handlers/rollbar.rb +28 -0
  28. data/lib/hutch/error_handlers/sentry.rb +15 -12
  29. data/lib/hutch/error_handlers/sentry_raven.rb +31 -0
  30. data/lib/hutch/error_handlers.rb +3 -0
  31. data/lib/hutch/exceptions.rb +8 -1
  32. data/lib/hutch/logging.rb +5 -5
  33. data/lib/hutch/message.rb +2 -4
  34. data/lib/hutch/publisher.rb +75 -0
  35. data/lib/hutch/serializers/identity.rb +19 -0
  36. data/lib/hutch/serializers/json.rb +22 -0
  37. data/lib/hutch/tracers/datadog.rb +17 -0
  38. data/lib/hutch/tracers.rb +1 -0
  39. data/lib/hutch/version.rb +1 -2
  40. data/lib/hutch/waiter.rb +104 -0
  41. data/lib/hutch/worker.rb +81 -75
  42. data/lib/hutch.rb +15 -6
  43. data/lib/yard-settings/handler.rb +38 -0
  44. data/lib/yard-settings/yard-settings.rb +2 -0
  45. data/spec/hutch/broker_spec.rb +162 -77
  46. data/spec/hutch/cli_spec.rb +16 -3
  47. data/spec/hutch/config_spec.rb +121 -22
  48. data/spec/hutch/consumer_spec.rb +82 -4
  49. data/spec/hutch/error_handlers/airbrake_spec.rb +25 -10
  50. data/spec/hutch/error_handlers/bugsnag_spec.rb +55 -0
  51. data/spec/hutch/error_handlers/honeybadger_spec.rb +24 -2
  52. data/spec/hutch/error_handlers/logger_spec.rb +14 -1
  53. data/spec/hutch/error_handlers/rollbar_spec.rb +45 -0
  54. data/spec/hutch/error_handlers/sentry_raven_spec.rb +37 -0
  55. data/spec/hutch/error_handlers/sentry_spec.rb +21 -2
  56. data/spec/hutch/logger_spec.rb +12 -6
  57. data/spec/hutch/message_spec.rb +2 -2
  58. data/spec/hutch/serializers/json_spec.rb +17 -0
  59. data/spec/hutch/tracers/datadog_spec.rb +44 -0
  60. data/spec/hutch/waiter_spec.rb +51 -0
  61. data/spec/hutch/worker_spec.rb +89 -5
  62. data/spec/spec_helper.rb +7 -5
  63. data/templates/default/class/html/settings.erb +0 -0
  64. data/templates/default/class/setup.rb +4 -0
  65. data/templates/default/fulldoc/html/css/hutch.css +13 -0
  66. data/templates/default/layout/html/setup.rb +7 -0
  67. data/templates/default/method_details/html/settings.erb +5 -0
  68. data/templates/default/method_details/setup.rb +4 -0
  69. data/templates/default/method_details/text/settings.erb +0 -0
  70. data/templates/default/module/html/settings.erb +40 -0
  71. data/templates/default/module/setup.rb +4 -0
  72. metadata +62 -43
  73. data/circle.yml +0 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: ae290b72e28ca5ca72f8014fe5688e35b4c31716
4
- data.tar.gz: 2a817eece4ab761d6558255395e123d5cea19ea0
2
+ SHA256:
3
+ metadata.gz: 74721c392b797963bf268ff65d638b888e11d43307446ed63bd3de14e36aa97e
4
+ data.tar.gz: 1ddb6053bd164c0332650169415ae9a20daa9724039be7765cc90aade1e0f304
5
5
  SHA512:
6
- metadata.gz: b929abefa84452c0b5a74fc2dcfc5f2918fb752d80f97b77e97cf4d0fbfad99e119cd09f3251f17edf1450ee7ccc063a76efaa9e31d318526aabf5a147779b84
7
- data.tar.gz: c5c04b649c3ea2333ff86273d7d17a1d843a02e782bd981d19ef2ea4025286761b4b96fd8200026ce2f503108d588c0aa61f204997632f02ac467ac5fa4633c3
6
+ metadata.gz: e690481212eeca9499f491b34c39e9f8e4f883f617063a5123bf1471e87b7f7251c52e0c92b103fe73dfa8db1859ad5feca76b6f0694ff68554191e66621f209
7
+ data.tar.gz: 043c203877a230f2d50c023a005ce84c7a7fc764c2b6ce3d452ab8aa143fa4175e4ba4bd54a4e2e611839360b2ec292d28c03ec338c92bbaa3b84e34b8a644f0
data/.gitignore CHANGED
@@ -5,3 +5,6 @@ Gemfile.lock
5
5
  .ruby-gemset
6
6
  .idea
7
7
  coverage
8
+ .yardoc
9
+ doc
10
+ gemfiles/Gemfile.*.lock
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --order random
data/.travis.yml CHANGED
@@ -1,11 +1,23 @@
1
+ dist: bionic
2
+ sudo: required
3
+
1
4
  language: ruby
2
- rvm:
3
- - "2.2"
4
- - "2.1"
5
- - "2.0"
6
- - "jruby-9.0.0.0"
7
- services:
8
- - rabbitmq
5
+ cache: bundler
6
+ before_install:
7
+ - gem install bundler
8
+ before_script:
9
+ - "./bin/ci/install_on_debian.sh"
10
+ - until sudo lsof -i:5672; do echo "Waiting for RabbitMQ to start..."; sleep 1; done
11
+ - "./bin/ci/before_build.sh"
9
12
  matrix:
13
+ include:
14
+ - rvm: "3.0.0"
15
+ - rvm: "2.7.1"
16
+ - rvm: "2.6.6"
17
+ - rvm: "2.5.8"
18
+ - rvm: "jruby-9.2.19.0"
19
+ name: "Latest JRuby"
20
+ - rvm: "ruby-head"
10
21
  allow_failures:
11
- - rvm: jruby-9.0.0.0
22
+ - name: "Latest JRuby"
23
+ - rvm: ruby-head
data/.yardopts ADDED
@@ -0,0 +1,5 @@
1
+ --load "./lib/yard-settings/yard-settings.rb"
2
+ --title "Hutch API docs"
3
+ -
4
+ README.md
5
+
data/CHANGELOG.md CHANGED
@@ -1,4 +1,469 @@
1
- ## 0.18.0 (unreleased)
1
+ ## 1.1.0 (July 26th, 2021)
2
+
3
+ ### Bugsnag Error Handler
4
+
5
+ Contributed by @ivanhuang1.
6
+
7
+ GitHub issue: [#362](https://github.com/ruby-amqp/hutch/pull/362)
8
+
9
+ ### Updated Sentry Error Handler
10
+
11
+ Contributed by Karol @Azdaroth Galanciak.
12
+
13
+ GitHub issue: [#363](https://github.com/ruby-amqp/hutch/pull/363)
14
+
15
+
16
+ ### Type Casting for Values Set Using Hutch::Config.set
17
+
18
+ Values set with `Hutch::Config.set` now have expected setting type casting
19
+ applied to them.
20
+
21
+ Contributed by Karol @Azdaroth Galanciak.
22
+
23
+ GitHub issue: [#358](https://github.com/ruby-amqp/hutch/pull/358)
24
+
25
+
26
+ ## 1.0.0 (April 8th, 2020)
27
+
28
+ Hutch has been around for several years. It is time to ship a 1.0. With it we try to correct
29
+ a few of overly opinionated decisions from recent releases. This means this release
30
+ contains potentially breaking changes.
31
+
32
+ ### Breaking Changes
33
+
34
+ * Hutch will no longer configure any queue type (such as [quorum queues](https://www.rabbitmq.com/quorum-queues.html))
35
+ or queue mode (used by classic [lazy queues](https://www.rabbitmq.com/lazy-queues.html))
36
+ by default as that can be breaking change for existing Hutch and RabbitMQ installations due to the
37
+ [property equivalence requirement](https://www.rabbitmq.com/queues.html#property-equivalence) in AMQP 0-9-1.
38
+
39
+ This means **some defaults introduced in `0.28.0` ([gocardless/hutch#341](https://github.com/gocardless/hutch/pull/341)) were reverted**.
40
+ The user has to opt in to configure the queue type and mode and other [optional arguments](https://www.rabbitmq.com/queues.html#optional-arguments) they need to use.
41
+ Most optional arguments can be set via [policies](https://www.rabbitmq.com/parameters.html#policies) which is always the recommended approach.
42
+ Queue type, unfortunately, is not one of them as different queue types have completely different
43
+ implementation details, on disk data formats and so on.
44
+
45
+ To use a quorum queue, use the `quorum_queue` consumer DSL method:
46
+
47
+ ``` ruby
48
+ class ConsumerUsingQuorumQueue
49
+ include Hutch::Consumer
50
+ consume 'hutch.test1'
51
+ # when in doubt, prefer using a policy to this DSL
52
+ # https://www.rabbitmq.com/parameters.html#policies
53
+ arguments 'x-key': :value
54
+
55
+ quorum_queue
56
+ end
57
+ ```
58
+
59
+ To use a classic lazy queue, use the `lazy_queue` consumer DSL method:
60
+
61
+ ``` ruby
62
+ class ConsumerUsingLazyQueue
63
+ include Hutch::Consumer
64
+ consume 'hutch.test1'
65
+ # when in doubt, prefer using a policy to this DSL
66
+ # https://www.rabbitmq.com/parameters.html#policies
67
+ arguments 'x-key': :value
68
+
69
+ lazy_queue
70
+ classic_queue
71
+ end
72
+ ```
73
+
74
+ By default Hutch will not configure any `x-queue-type` or `x-queue-mode` optional arguments
75
+ which is identical to RabbitMQ defaults (a regular classic queue).
76
+
77
+ Note that as of RabbitMQ 3.8.2, an omitted `x-queue-type` is [considered to be identical](https://github.com/rabbitmq/rabbitmq-common/issues/341)
78
+ to `x-queue-type` set to `classic` by RabbitMQ server.
79
+
80
+
81
+ #### Enhancements
82
+
83
+ * Exchange type is now configurable via the `mq_exchange_type` config setting. Supported exchanges must be
84
+ compatible with topic exchanges (e.g. wrap it). Default value is `topic`.
85
+
86
+ This feature is limited to topic and delayed message exchange plugins and is mostly
87
+ useful for forward compatibility.
88
+
89
+ Contributed by Michael Bumann.
90
+
91
+ GitHub issue: [gocardless/hutch#349](https://github.com/gocardless/hutch/pull/349)
92
+
93
+
94
+ ## 0.28.0 (March 17, 2020)
95
+
96
+ ### Enhancements
97
+
98
+ * Add lazy and quorum options for queues.
99
+
100
+ GitHub issue: [gocardless/hutch#341](https://github.com/gocardless/hutch/pull/341)
101
+
102
+ Contributed by: Arthur Del Esposte
103
+
104
+ * Log level in the message publisher switched to DEBUG.
105
+
106
+ GitHub issue: [gocardless/hutch#343](https://github.com/gocardless/hutch/pull/343)
107
+
108
+ Contributed by: Codruț Constantin Gușoi
109
+
110
+ ### Documentation
111
+
112
+ * Add zeitwerk note to README.
113
+
114
+ GitHub issue: [gocardless/hutch#342](https://github.com/gocardless/hutch/pull/342)
115
+
116
+ Contributed by: Paolo Zaccagnini
117
+
118
+ ### CI
119
+
120
+ * Use jruby-9.2.9.0
121
+
122
+ GitHub issue: [gocardless/hutch#336](https://github.com/gocardless/hutch/pull/336)
123
+
124
+ Contributed by: Olle Jonsson
125
+
126
+ ## 0.27.0 (September 9th, 2019)
127
+
128
+ ### Enhancements
129
+
130
+ * Error handler for Rollback.
131
+
132
+ GitHub issue: [gocardless/hutch#332](https://github.com/gocardless/hutch/pull/332)
133
+
134
+ Contributed by Johan Kok.
135
+
136
+ ### Bug Fixes
137
+
138
+ * Allow for the latest ActiveSupport version.
139
+
140
+ GitHub issue: [gocardless/hutch#334](https://github.com/gocardless/hutch/pull/334)
141
+
142
+ * Signal tests are now skipped on JRuby.
143
+
144
+ Contributed by Olle Jonsson.
145
+
146
+ GitHub issue: [gocardless/hutch#326](https://github.com/gocardless/hutch/pull/326)
147
+
148
+ ### Dependency Bumps
149
+
150
+ Bunny and other dependencies were updated to their latest release
151
+ series.
152
+
153
+
154
+ ## 0.26.0 (February 13th, 2019)
155
+
156
+ ### Dependency Bumps
157
+
158
+ Bunny and other dependencies were updated to their latest release
159
+ series.
160
+
161
+ ### Synchronized Connection Code
162
+
163
+ The methods that connect to RabbitMQ are now synchronized which makes
164
+ them safer to use in concurrent settings. Note that Hutch still
165
+ uses a single Bunny channel which is not meant to be shared
166
+ between threads without application-level synchronization for publishing.
167
+
168
+ Contributed by Chris Barton.
169
+
170
+ GitHub issue: [#308](https://github.com/gocardless/hutch/pull/308).
171
+
172
+ ### More Bunny Options Propagated
173
+
174
+ Contributed by Damian Le Nouaille.
175
+
176
+ GitHub issue: [#322](https://github.com/gocardless/hutch/pull/322).
177
+
178
+ ### Removed Opbeat Integration
179
+
180
+ The service is no longer generally available.
181
+
182
+ Contributed by Olle Jonsson.
183
+
184
+ GitHub issue: [#313](https://github.com/gocardless/hutch/pull/313)
185
+
186
+
187
+ ## 0.25.0 - January 17th, 2018
188
+
189
+ ### Consumer groups
190
+
191
+ Consumer groups allow you to run groups of consumers together, rather than running them
192
+ all at once in a single process. You define groups in your config file, and then specify
193
+ a `--only-group` option when starting up Hutch with `hutch`.
194
+
195
+ Contributed by Nickolai Smirnov.
196
+
197
+ GitHub pull request: [#296](https://github.com/gocardless/hutch/pull/296)
198
+
199
+ ### Fix configuring Hutch with a URI
200
+
201
+ When Hutch is configured to connect to RabbitMQ with a URI, we should respect the
202
+ `amqps` specification, defaulting to the standard protocol ports when not specified.
203
+
204
+ This means, for example, that `amqp://guest:guest@127.0.0.1/` connects to the server on
205
+ port 5672 and does not use TLS, whereas `amqps://guest:guest@127.0.0.1/` connects to the
206
+ server on port 5671 and uses TLS.
207
+
208
+ This behaviour was introduced in [#159](https://github.com/gocardless/hutch/pull/159) but
209
+ broken since then. This fixes it, and includes tests.
210
+
211
+ Contributed by Michael Canden-Lennox.
212
+
213
+ GitHub pull request: [#305](https://github.com/gocardless/hutch/pull/305)
214
+
215
+ ### Pass exceptions when setting up the client to configured error handlers
216
+
217
+ When an error occurs during Hutch's startup, it is currently not passed to the configured
218
+ error handlers. This starts handling those exceptions.
219
+
220
+ Contributed by Valentin Krasontovitsch.
221
+
222
+ GitHub issue: [#288](https://github.com/gocardless/hutch/issues/288)
223
+ GitHub pull request: [#301](https://github.com/gocardless/hutch/pull/301)
224
+
225
+ ### Log the Rails environment when running Hutch in verbose mode
226
+
227
+ When starting up Hutch in verbose mode with `hutch -v`, the Rails environment is now
228
+ logged.
229
+
230
+ Contributed by [@wppurking](https://github.com/wppurking).
231
+
232
+ GitHub pull request: [#282](https://github.com/gocardless/hutch/pull/282)
233
+
234
+ ### Make the Honeybadger error handler compatible with new versions of `honeybadger-ruby`
235
+
236
+ [`honeybadger-ruby`](https://github.com/honeybadger-io/honeybadger-ruby/)
237
+ [changed](https://github.com/honeybadger-io/honeybadger-ruby/blob/master/CHANGELOG.md#300---2017-02-06)
238
+ its API in v3.0.0. This updates our error handler to work with that, whilst still
239
+ maintaining our existing behaviour.
240
+
241
+ Contributed by Olle Jonsson and Bill Ruddock.
242
+
243
+ GitHub pull requests: [#274](https://github.com/gocardless/hutch/pull/274),
244
+ [#290](https://github.com/gocardless/hutch/pull/290)
245
+
246
+ ## 0.24.0 — February 1st, 2017
247
+
248
+ ### Configurable Consumer Prefixes
249
+
250
+ Hutch consumers now can use user-provided prefixes for consumer tags.
251
+
252
+ Contributed by Dávid Lantos.
253
+
254
+ GitHub issue: [#265](https://github.com/gocardless/hutch/pull/265)
255
+
256
+ ### Signal Handling in Workers
257
+
258
+ Hutch will now handle several OS signals:
259
+
260
+ * `USR2` will log stack traces of all alive VM threads
261
+ * `QUIT` (except on JRuby), `INT`, `TERM` will cause Hutch daemon to shut down
262
+
263
+ Contributed by Olle Jonsson.
264
+
265
+ GitHub issues: [#263](https://github.com/gocardless/hutch/pull/263), [#271](https://github.com/gocardless/hutch/pull/271)
266
+
267
+ ### Opbeat Tracer
268
+
269
+ Hutch now provides a tracer implementation for [Opbeat](https://opbeat.com/).
270
+
271
+ Contributed by Olle Jonsson.
272
+
273
+ GitHub issue: [#262](https://github.com/gocardless/hutch/pull/262)
274
+
275
+ ### `HUTCH_URI` Support
276
+
277
+ The `HUTCH_URI` environment variable now can be used to configure
278
+ Hutch connection URI.
279
+
280
+ Contributed by Sam Stickland.
281
+
282
+ GitHub issue: [#270](https://github.com/gocardless/hutch/pull/270)
283
+
284
+
285
+ ## 0.23.1 — October 20th, 2016
286
+
287
+ This release contains a **breaking change** in the error
288
+ handlers interface.
289
+
290
+ ### All Message Properties Passed to Error Handlers
291
+
292
+ Previously error handlers were provided a message ID as first
293
+ argument to `ErrorHandler#handle`. Now it is a hash of all message
294
+ properties.
295
+
296
+ This is a **breaking public API change**. If you do not use custom
297
+ error handlers, you are not affected.
298
+
299
+ Contributed by Pierre-Louis Gottfrois.
300
+
301
+ GH issue: [hutch#238](https://github.com/gocardless/hutch/pull/238)
302
+
303
+ ### Opbeat Error Handler
304
+
305
+ Contributed by Olle Jonsson.
306
+
307
+
308
+ ## 0.22.1 — June 7th, 2016
309
+
310
+ ### Message Payload is Reported to Sentry
311
+
312
+ Contributed by Matt Thompson.
313
+
314
+ ### Daemonization Flag Ignored on JRuby
315
+
316
+ Hutch will no longer try to daemonize its process on JRuby
317
+ (since it is not supported) and will emit a warning instead.
318
+
319
+ Contributed by Olle Jonsson.
320
+
321
+ ### Custom Setup Steps in Hutch::Worker
322
+
323
+ `Hutch::Worker` now accepts a list of callables that are invoked
324
+ after queue setup.
325
+
326
+ Contributed by Kelly Stannard.
327
+
328
+ ### More Flexible and Better Abstracted Hutch::Broker
329
+
330
+ `Hutch::Broker` was refactored with some bits extracted into separate
331
+ classes or methods, making them easier to override.
332
+
333
+ Contributed by Aleksandar Ivanov and Ryan Hosford.
334
+
335
+ ### Configurable Consumer Thread Pool Exception Handling (MRI only)
336
+
337
+ `:consumer_pool_abort_on_exception` is a new option
338
+ (defaults to `false`) which defines whether Bunny's
339
+ consumer work pool threads should abort on exception.
340
+ The option is ignored on JRuby.
341
+
342
+ Contributed by Seamus Abshere.
343
+
344
+ ### Worker: Log received messages using level DEBUG instead of INFO
345
+
346
+ Received messages used to be logged using severity level INFO.
347
+ This has been lowered to DEBUG.
348
+
349
+ Contributed by Jesper Josefsson.
350
+
351
+ ### Refactoring
352
+
353
+ Olle Jonsson and Kelly Stannard have contributed
354
+ multiple internal improvements that have no behaviour changes.
355
+
356
+
357
+ ## 0.21.0 — February 7th, 2016
358
+
359
+ ### JRuby Compatibility Restored
360
+
361
+ Contributed by Jesper Josefsson.
362
+
363
+ ### More Reliable Rails app Detection
364
+
365
+ Rails application detection now won't produce false positives
366
+ for applications that include `config/environment.rb`. Instead,
367
+ `bin/rails` and `script/rails` are used.
368
+
369
+ Contributed by @bisusubedi.
370
+
371
+ ### Refactoring
372
+
373
+ Contributed by Jesper Josefsson and Olle Jonsson.
374
+
375
+
376
+ ## 0.20.0 — November 16th, 2015
377
+
378
+ ### Hutch::Exception includes Bunny::Exception
379
+
380
+ `Hutch::Exception` now inherits from `Bunny::Exception` which
381
+ inherits from `StandardError`.
382
+
383
+ GH issue: [#137](https://github.com/gocardless/hutch/issues/137).
384
+
385
+
386
+ ### Pluggable (Negative) Acknowledge Handlers
387
+
388
+ Hutch now can be configured to use a user-provided
389
+ object(s) to perform acknowledgement on consumer exceptions.
390
+
391
+ For example, this is what the default handler looks like:
392
+
393
+ ``` ruby
394
+ require 'hutch/logging'
395
+ require 'hutch/acknowledgements/base'
396
+
397
+ module Hutch
398
+ module Acknowledgements
399
+ class NackOnAllFailures < Base
400
+ include Logging
401
+
402
+ def handle(delivery_info, properties, broker, ex)
403
+ prefix = "message(#{properties.message_id || '-'}): "
404
+ logger.debug "#{prefix} nacking message"
405
+
406
+ broker.nack(delivery_info.delivery_tag)
407
+
408
+ # terminates further chain processing
409
+ true
410
+ end
411
+ end
412
+ end
413
+ end
414
+ ```
415
+
416
+ Handlers are configured similarly to exception notification handlers,
417
+ via `:error_acknowledgements` in Hutch config.
418
+
419
+ Contributed by Derek Kastner.
420
+
421
+ GH issue: [#177](https://github.com/gocardless/hutch/pull/177).
422
+
423
+
424
+ ### Configurable Exchange Properties
425
+
426
+ `:mq_exchange_options` is a new config option that can be used
427
+ to provide a hash of exchange attributes (durable, auto-delete).
428
+ The options will be passed directly to Bunny (or March Hare, when
429
+ running on JRuby).
430
+
431
+ Contributed by Derek Kastner.
432
+
433
+ GH issue: [#170](https://github.com/gocardless/hutch/pull/170).
434
+
435
+
436
+ ### Bunny Update
437
+
438
+ Bunny is updated to 2.2.1.
439
+
440
+
441
+ ## 0.19.0 — September 7th, 2015
442
+
443
+ ### Pluggable Serialisers
444
+
445
+ Hutch now supports pluggable serialisers: see `Hutch::Serializer::JSON` for
446
+ an example. Serialiser is configured via Hutch config as a Ruby
447
+ class.
448
+
449
+ Contributed by Dmitry Galinsky.
450
+
451
+
452
+ ### multi_json Update
453
+
454
+ Hutch now depends on multi_json `1.11.x`.
455
+
456
+ ### Bunny Update
457
+
458
+ Bunny is updated to [2.2.0](http://blog.rubyrabbitmq.info/blog/2015/09/06/bunny-2-dot-2-0-is-released/).
459
+
460
+ ### More Bunny SSL Options
461
+
462
+ `:mq_tls_ca_certificates` and `:mq_verify_peer` options will now be passed on to Bunny as `:tls_ca_certificates` and `:verify_peer` respectively.
463
+
464
+ Contributed by Kennon Ballou.
465
+
466
+ ## 0.18.0 — August 16th, 2015
2
467
 
3
468
  ### JRuby Support (Using March Hare)
4
469
 
@@ -410,4 +875,3 @@ Hutch.global_properties = proc {
410
875
  ## 0.1.0 - September 9, 2013
411
876
 
412
877
  - Initial release
413
-
data/Gemfile CHANGED
@@ -1,19 +1,33 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ ruby '>= 2.3.0'
4
+
3
5
  gemspec
4
6
 
5
7
  group :development do
6
8
  gem "rake"
7
- gem "guard", "~> 0.8.8"
8
- gem "guard-rspec", "~> 0.5.4"
9
+ gem "guard", "~> 2.14", platform: :mri_23
10
+ gem "guard-rspec", "~> 4.7", platform: :mri_23
11
+
12
+ gem "yard", "~> 0.9"
13
+ gem 'kramdown', "> 0", platform: :jruby
14
+ gem "redcarpet", "> 0", platform: :mri
15
+ gem "github-markup", "> 0"
9
16
  end
10
17
 
11
18
  group :development, :test do
19
+ gem "rspec", "~> 3.5"
20
+ gem "simplecov", "~> 0.12"
21
+
12
22
  gem "sentry-raven"
23
+ gem "sentry-ruby"
13
24
  gem "honeybadger"
14
- gem "coveralls", require: false
25
+ gem "coveralls", "~> 0.8.15", require: false
15
26
  gem "newrelic_rpm"
16
- gem "airbrake"
27
+ gem "ddtrace"
28
+ gem "airbrake", "~> 10.0"
29
+ gem "rollbar"
30
+ gem "bugsnag"
17
31
  end
18
32
 
19
33
  group :development, :darwin do
data/Guardfile CHANGED
@@ -1,5 +1,14 @@
1
- guard 'rspec', :version => 2, :cli => '--color --format doc' do
2
- watch(%r{^spec/.+_spec\.rb$})
3
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
4
- watch('spec/spec_helper.rb') { "spec" }
1
+ guard :rspec, cmd: "bundle exec rspec" do
2
+ require "guard/rspec/dsl"
3
+ dsl = Guard::RSpec::Dsl.new(self)
4
+
5
+ # RSpec files
6
+ rspec = dsl.rspec
7
+ watch(rspec.spec_helper) { rspec.spec_dir }
8
+ watch(rspec.spec_support) { rspec.spec_dir }
9
+ watch(rspec.spec_files)
10
+
11
+ # Ruby files
12
+ ruby = dsl.ruby
13
+ dsl.watch_spec_files_for(ruby.lib_files)
5
14
  end
data/LICENSE CHANGED
@@ -1,4 +1,5 @@
1
- Copyright (c) 2013-2014 GoCardless
1
+ Copyright (c) 2013-2016 GoCardless
2
+ Copyright (c) 2016-2020 Hutch contributors
2
3
 
3
4
  Permission is hereby granted, free of charge, to any person
4
5
  obtaining a copy of this software and associated documentation