coach 2.2.2 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
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