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