coach 2.2.2 → 2.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 276731375be178d95795d5e004e395c1412272b287758e5b63939470a79cfcd3
4
- data.tar.gz: fcecdd27c44dae3f26a8a6cc8d989e5267d6efda0f43432a2552d96666db90c8
3
+ metadata.gz: abbb55ace2b77bfa43bdac156e34fb30ccb37f3ace7ce76a7afb660f4fae754c
4
+ data.tar.gz: 1d730de41dfcb77e8d6b858f7fa4d0c7f48998e7bc8527d2e7ad2c0951f88b41
5
5
  SHA512:
6
- metadata.gz: b42530f66daf019dd4a059615816da2f515c97c1464ee83d646b6ac28e5d8de8e632b4552cabaa17309a17b0066bd21526cc0199fcf36b1bac92ab983dd50239
7
- data.tar.gz: 9f1b41f7b0a507738f2224606bb94bc60db8ac3679895b4b15fe92080d591e98238f468e01a61b51473a30a10629528edacb68ec2e4c37deb1d2e2179a66656c
6
+ metadata.gz: 433ee2ebb1f528ce6e599b6dca9a3eb2ab2f4766860d7053b5c8f896d721a04df460f5b4f2073efd54823d101201ae87be36cb57932a2dd641ae0a7c1eb35e80
7
+ data.tar.gz: bca365dfbab5ef5f1724a214498e521e0a1d9d21fc10e79cb8ac88be247d20fe1ea0ade9d6927e914bd33a24065f3f4873ecf12109ea09969d8795413196de02
@@ -2,7 +2,9 @@
2
2
 
3
3
  # Unreleased
4
4
 
5
- No unreleased changes.
5
+ # 2.3.0 / 2020-04-29
6
+
7
+ * [#90](https://github.com/gocardless/coach/pull/90) Instrument status `0` instead of `500` when Coach::Handler catches an exception
6
8
 
7
9
  # 2.2.1 / 2020-02-06
8
10
 
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency "activesupport", ">= 4.2"
24
24
  spec.add_dependency "commander", "~> 4.5"
25
25
 
26
- spec.add_development_dependency "gc_ruboconfig", "= 2.9.0"
26
+ spec.add_development_dependency "gc_ruboconfig", "= 2.12.0"
27
27
  spec.add_development_dependency "pry", "~> 0.10"
28
28
  spec.add_development_dependency "rspec", "~> 3.2"
29
29
  spec.add_development_dependency "rspec-its", "~> 1.2"
@@ -5,7 +5,7 @@ require "active_support/core_ext/object/try"
5
5
 
6
6
  module Coach
7
7
  class Handler
8
- STATUS_CODE_FOR_EXCEPTIONS = 500
8
+ STATUS_CODE_FOR_EXCEPTIONS = 0
9
9
 
10
10
  def initialize(middleware, config = {})
11
11
  @root_item = MiddlewareItem.new(middleware, config)
@@ -34,6 +34,8 @@ module Coach
34
34
  instrument("finish_handler.coach", event) do
35
35
  begin
36
36
  response = chain.instrument.call
37
+ rescue StandardError => e
38
+ raise
37
39
  ensure
38
40
  # We want to populate the response and metadata fields after the middleware
39
41
  # chain has completed so that the end of the instrumentation can see them. The
@@ -43,7 +45,10 @@ module Coach
43
45
  # This way, the last finish_handler.coach event will have all the details.
44
46
  status = response.try(:first) || STATUS_CODE_FOR_EXCEPTIONS
45
47
  event.merge!(
46
- response: { status: status },
48
+ response: {
49
+ status: status,
50
+ exception: e,
51
+ }.compact,
47
52
  metadata: context.fetch(:_metadata, {}),
48
53
  )
49
54
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Coach
4
- VERSION = "2.2.2"
4
+ VERSION = "2.3.0"
5
5
  end
@@ -85,10 +85,10 @@ describe Coach::Handler do
85
85
 
86
86
  before { terminal_middleware.uses(middleware_a, callback: explosive_action) }
87
87
 
88
- it "captures the error event with the metadata" do
88
+ it "captures the error event with the metadata and nil status" do
89
89
  expect(coach_events).
90
90
  to include(["finish_handler.coach", hash_including(
91
- response: { status: 500 },
91
+ response: { status: 0, exception: instance_of(RuntimeError) },
92
92
  metadata: { A: true },
93
93
  )])
94
94
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coach
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.2
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GoCardless
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-02-14 00:00:00.000000000 Z
11
+ date: 2020-04-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionpack
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 2.9.0
61
+ version: 2.12.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 2.9.0
68
+ version: 2.12.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pry
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -185,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
185
  - !ruby/object:Gem::Version
186
186
  version: '0'
187
187
  requirements: []
188
- rubygems_version: 3.1.2
188
+ rubygems_version: 3.0.8
189
189
  signing_key:
190
190
  specification_version: 4
191
191
  summary: Alternative controllers built with middleware