exception_handling 2.4.1 → 2.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.jenkins/Jenkinsfile +44 -6
- data/Appraisals +19 -0
- data/CHANGELOG.md +10 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +15 -9
- data/README.md +7 -3
- data/exception_handling.gemspec +3 -3
- data/gemfiles/.bundle/config +2 -0
- data/gemfiles/rails_4.gemfile +18 -0
- data/gemfiles/rails_5.gemfile +18 -0
- data/gemfiles/rails_6.gemfile +18 -0
- data/lib/exception_handling/version.rb +1 -1
- data/test/test_helper.rb +3 -1
- data/test/unit/exception_handling/exception_catalog_test.rb +1 -1
- data/test/unit/exception_handling_test.rb +18 -3
- metadata +31 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 55e89ccca99bfdef126c57f9674d62d90d2048405099e83467ddc2997ffb3526
|
4
|
+
data.tar.gz: f7fae0d722026d38af12400a95812a14e2a7f32e7d79cbae90b3bd332a30fc04
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 509366eaf0081abe570f51d1ff09707a1ff880e94870616b850b5af000bc489d304bf222452799ff5f9848190247a3c526feb2ac4e3a62057dd04a3558e585eb
|
7
|
+
data.tar.gz: 7b26674dbf9862b43ba7b63650b1a9bc637d3b360d28b469e8d5ec231d3db7af7c4d12030e5e93653c1b1d2c2b84c47189a269472ce8c9dc6b370a5ee43cd3cb
|
data/.gitignore
CHANGED
data/.jenkins/Jenkinsfile
CHANGED
@@ -19,6 +19,7 @@ pipeline {
|
|
19
19
|
stage('Setup') {
|
20
20
|
steps {
|
21
21
|
script {
|
22
|
+
updateGitHubStatus('clean-build', 'pending', 'Unit tests.')
|
22
23
|
sh '''
|
23
24
|
# get SSH setup inside the container
|
24
25
|
eval `ssh-agent -s`
|
@@ -27,18 +28,55 @@ pipeline {
|
|
27
28
|
ssh-keyscan -t rsa github.com > /root/.ssh/known_hosts
|
28
29
|
|
29
30
|
bundle install
|
31
|
+
bundle exec appraisal install
|
30
32
|
'''
|
31
33
|
}
|
32
34
|
}
|
33
35
|
}
|
34
|
-
stage('
|
35
|
-
|
36
|
-
|
37
|
-
|
36
|
+
stage('Appraisals') {
|
37
|
+
parallel {
|
38
|
+
stage('Current') {
|
39
|
+
steps {
|
40
|
+
sh 'JUNIT_OUTPUT_DIR=test/reports/current bundle exec rake'
|
41
|
+
}
|
42
|
+
|
43
|
+
post {
|
44
|
+
always { junit '*/reports/current/*.xml' }
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
stage('Rails 4') {
|
49
|
+
steps {
|
50
|
+
sh 'JUNIT_OUTPUT_DIR=test/reports/rails-4 bundle exec appraisal rails-4 rake'
|
51
|
+
}
|
52
|
+
|
53
|
+
post {
|
54
|
+
always { junit '*/reports/rails-4/*.xml' }
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
stage('Rails 5') {
|
59
|
+
steps {
|
60
|
+
sh 'JUNIT_OUTPUT_DIR=test/reports/rails-5 bundle exec appraisal rails-5 rake'
|
61
|
+
}
|
62
|
+
|
63
|
+
post {
|
64
|
+
always { junit '*/reports/rails-5/*.xml' }
|
65
|
+
}
|
66
|
+
}
|
67
|
+
|
68
|
+
stage('Rails 6') {
|
69
|
+
steps {
|
70
|
+
sh 'JUNIT_OUTPUT_DIR=test/reports/rails-6 bundle exec appraisal rails-6 rake'
|
71
|
+
}
|
72
|
+
|
73
|
+
post {
|
74
|
+
always { junit '*/reports/rails-6/*.xml' }
|
75
|
+
}
|
38
76
|
}
|
39
77
|
}
|
78
|
+
|
40
79
|
post {
|
41
|
-
always { junit '*/reports/*.xml' }
|
42
80
|
success { updateGitHubStatus('clean-build', 'success', 'Unit tests.') }
|
43
81
|
failure { updateGitHubStatus('clean-build', 'failure', 'Unit tests.') }
|
44
82
|
}
|
@@ -52,7 +90,7 @@ void updateGitHubStatus(String context, String status, String description) {
|
|
52
90
|
sha: env.GIT_COMMIT,
|
53
91
|
description: description,
|
54
92
|
context: context,
|
55
|
-
targetURL: env.
|
93
|
+
targetURL: env.RUN_DISPLAY_URL,
|
56
94
|
token: env.GITHUB_TOKEN,
|
57
95
|
status: status
|
58
96
|
])
|
data/Appraisals
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
appraise "rails-4" do
|
4
|
+
gem 'actionmailer', '~> 4.2'
|
5
|
+
gem 'actionpack', '~> 4.2'
|
6
|
+
gem 'activesupport', '~> 4.2'
|
7
|
+
end
|
8
|
+
|
9
|
+
appraise "rails-5" do
|
10
|
+
gem 'actionmailer', '~> 5.0'
|
11
|
+
gem 'actionpack', '~> 5.0'
|
12
|
+
gem 'activesupport', '~> 5.0'
|
13
|
+
end
|
14
|
+
|
15
|
+
appraise "rails-6" do
|
16
|
+
gem 'actionmailer', '~> 6.0'
|
17
|
+
gem 'actionpack', '~> 6.0'
|
18
|
+
gem 'activesupport', '~> 6.0'
|
19
|
+
end
|
data/CHANGELOG.md
CHANGED
@@ -4,8 +4,18 @@ Inspired by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
4
4
|
|
5
5
|
Note: this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
+
## [2.4.2] - 2020-05-11
|
8
|
+
### Added
|
9
|
+
- Added support for rails 5 and 6.
|
10
|
+
- Added appraisal tests for all supported rails version: 4/5/6
|
11
|
+
|
12
|
+
### Changed
|
13
|
+
- Updated various test to be compatible with rails version 4/5/6
|
14
|
+
- Updated the CI pipeline to test against all three supported versions of rails
|
15
|
+
|
7
16
|
## [2.4.1] - 2020-04-29
|
8
17
|
### Changed
|
9
18
|
- No longer depends on hobo_support. Uses invoca-utils 0.3 instead.
|
10
19
|
|
20
|
+
[2.4.2]: https://github.com/Invoca/exception_handling/compare/v2.4.1...v2.4.2
|
11
21
|
[2.4.1]: https://github.com/Invoca/exception_handling/compare/v2.4.0...v2.4.1
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -8,10 +8,10 @@ GIT
|
|
8
8
|
PATH
|
9
9
|
remote: .
|
10
10
|
specs:
|
11
|
-
exception_handling (2.4.
|
12
|
-
actionmailer (
|
13
|
-
actionpack (
|
14
|
-
activesupport (
|
11
|
+
exception_handling (2.4.2)
|
12
|
+
actionmailer (>= 4.2, < 7.0)
|
13
|
+
actionpack (>= 4.2, < 7.0)
|
14
|
+
activesupport (>= 4.2, < 7.0)
|
15
15
|
contextual_logger
|
16
16
|
eventmachine (~> 1.0)
|
17
17
|
invoca-utils (~> 0.3)
|
@@ -47,6 +47,10 @@ GEM
|
|
47
47
|
thread_safe (~> 0.3, >= 0.3.4)
|
48
48
|
tzinfo (~> 1.1)
|
49
49
|
ansi (1.5.0)
|
50
|
+
appraisal (2.2.0)
|
51
|
+
bundler
|
52
|
+
rake
|
53
|
+
thor (>= 0.14.0)
|
50
54
|
ast (2.4.0)
|
51
55
|
builder (3.2.3)
|
52
56
|
coderay (1.1.2)
|
@@ -64,13 +68,13 @@ GEM
|
|
64
68
|
invoca-utils (0.3.0)
|
65
69
|
jaro_winkler (1.5.3)
|
66
70
|
json (2.3.0)
|
67
|
-
loofah (2.
|
71
|
+
loofah (2.5.0)
|
68
72
|
crass (~> 1.0.2)
|
69
73
|
nokogiri (>= 1.5.9)
|
70
74
|
mail (2.7.1)
|
71
75
|
mini_mime (>= 0.1.1)
|
72
76
|
method_source (0.9.2)
|
73
|
-
mini_mime (1.0.
|
77
|
+
mini_mime (1.0.2)
|
74
78
|
mini_portile2 (2.4.0)
|
75
79
|
minitest (5.11.3)
|
76
80
|
minitest-reporters (1.0.20)
|
@@ -86,7 +90,7 @@ GEM
|
|
86
90
|
pry (0.12.2)
|
87
91
|
coderay (~> 1.1.0)
|
88
92
|
method_source (~> 0.9.0)
|
89
|
-
rack (1.6.
|
93
|
+
rack (1.6.13)
|
90
94
|
rack-test (0.6.3)
|
91
95
|
rack (>= 1.0)
|
92
96
|
rails-deprecated_sanitizer (1.0.3)
|
@@ -95,8 +99,8 @@ GEM
|
|
95
99
|
activesupport (>= 4.2.0, < 5.0)
|
96
100
|
nokogiri (~> 1.6)
|
97
101
|
rails-deprecated_sanitizer (>= 1.0.1)
|
98
|
-
rails-html-sanitizer (1.0
|
99
|
-
loofah (~> 2.
|
102
|
+
rails-html-sanitizer (1.3.0)
|
103
|
+
loofah (~> 2.3)
|
100
104
|
rainbow (3.0.0)
|
101
105
|
rake (13.0.1)
|
102
106
|
rr (1.2.1)
|
@@ -114,6 +118,7 @@ GEM
|
|
114
118
|
shoulda-context (1.2.2)
|
115
119
|
shoulda-matchers (3.1.3)
|
116
120
|
activesupport (>= 4.0.0)
|
121
|
+
thor (1.0.1)
|
117
122
|
thread_safe (0.3.6)
|
118
123
|
tzinfo (1.2.5)
|
119
124
|
thread_safe (~> 0.1)
|
@@ -123,6 +128,7 @@ PLATFORMS
|
|
123
128
|
ruby
|
124
129
|
|
125
130
|
DEPENDENCIES
|
131
|
+
appraisal (~> 2.2)
|
126
132
|
exception_handling!
|
127
133
|
honeybadger (= 3.3.1.pre.1)!
|
128
134
|
minitest
|
data/README.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
Enable emails for your exceptions that occur in your application!
|
4
4
|
|
5
|
+
## Dependencies
|
6
|
+
- Ruby 2.6
|
7
|
+
- Rails >= 4, < 7
|
8
|
+
|
5
9
|
## Installation
|
6
10
|
|
7
11
|
Add this line to your application's Gemfile:
|
@@ -89,15 +93,15 @@ There is another hook available intended for custom actions after an error email
|
|
89
93
|
else
|
90
94
|
Invoca::Metrics::Client.metrics.counter("exception_handling/exception")
|
91
95
|
end
|
92
|
-
|
96
|
+
|
93
97
|
case honeybadger_status
|
94
98
|
when :success
|
95
99
|
Invoca::Metrics::Client.metrics.counter("exception_handling.honeybadger.success")
|
96
|
-
when :failure
|
100
|
+
when :failure
|
97
101
|
Invoca::Metrics::Client.metrics.counter("exception_handling.honeybadger.failure")
|
98
102
|
when :skipped
|
99
103
|
Invoca::Metrics::Client.metrics.counter("exception_handling.honeybadger.skipped")
|
100
|
-
end
|
104
|
+
end
|
101
105
|
end
|
102
106
|
ExceptionHandling.post_log_error_hook = method(:log_error_metrics)
|
103
107
|
|
data/exception_handling.gemspec
CHANGED
@@ -20,9 +20,9 @@ Gem::Specification.new do |spec|
|
|
20
20
|
"allowed_push_host" => "https://rubygems.org"
|
21
21
|
}
|
22
22
|
|
23
|
-
spec.add_dependency 'actionmailer', '
|
24
|
-
spec.add_dependency 'actionpack', '
|
25
|
-
spec.add_dependency 'activesupport', '
|
23
|
+
spec.add_dependency 'actionmailer', '>= 4.2', '< 7.0'
|
24
|
+
spec.add_dependency 'actionpack', '>= 4.2', '< 7.0'
|
25
|
+
spec.add_dependency 'activesupport', '>= 4.2', '< 7.0'
|
26
26
|
spec.add_dependency 'contextual_logger'
|
27
27
|
spec.add_dependency 'eventmachine', '~> 1.0'
|
28
28
|
spec.add_dependency 'invoca-utils', '~> 0.3'
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "appraisal", "~> 2.2"
|
6
|
+
gem "honeybadger", "3.3.1-1", git: "git@github.com:Invoca/honeybadger-ruby", ref: "bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6"
|
7
|
+
gem "minitest"
|
8
|
+
gem "minitest-reporters"
|
9
|
+
gem "pry"
|
10
|
+
gem "rake"
|
11
|
+
gem "rr"
|
12
|
+
gem "rubocop"
|
13
|
+
gem "shoulda"
|
14
|
+
gem "actionmailer", "~> 4.2"
|
15
|
+
gem "actionpack", "~> 4.2"
|
16
|
+
gem "activesupport", "~> 4.2"
|
17
|
+
|
18
|
+
gemspec path: "../"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "appraisal", "~> 2.2"
|
6
|
+
gem "honeybadger", "3.3.1-1", git: "git@github.com:Invoca/honeybadger-ruby", ref: "bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6"
|
7
|
+
gem "minitest"
|
8
|
+
gem "minitest-reporters"
|
9
|
+
gem "pry"
|
10
|
+
gem "rake"
|
11
|
+
gem "rr"
|
12
|
+
gem "rubocop"
|
13
|
+
gem "shoulda"
|
14
|
+
gem "actionmailer", "~> 5.0"
|
15
|
+
gem "actionpack", "~> 5.0"
|
16
|
+
gem "activesupport", "~> 5.0"
|
17
|
+
|
18
|
+
gemspec path: "../"
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# This file was generated by Appraisal
|
2
|
+
|
3
|
+
source "https://rubygems.org"
|
4
|
+
|
5
|
+
gem "appraisal", "~> 2.2"
|
6
|
+
gem "honeybadger", "3.3.1-1", git: "git@github.com:Invoca/honeybadger-ruby", ref: "bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6"
|
7
|
+
gem "minitest"
|
8
|
+
gem "minitest-reporters"
|
9
|
+
gem "pry"
|
10
|
+
gem "rake"
|
11
|
+
gem "rr"
|
12
|
+
gem "rubocop"
|
13
|
+
gem "shoulda"
|
14
|
+
gem "actionmailer", "~> 6.0"
|
15
|
+
gem "actionpack", "~> 6.0"
|
16
|
+
gem "activesupport", "~> 6.0"
|
17
|
+
|
18
|
+
gemspec path: "../"
|
data/test/test_helper.rb
CHANGED
@@ -9,7 +9,9 @@ require 'shoulda'
|
|
9
9
|
require 'rr'
|
10
10
|
require 'minitest/autorun'
|
11
11
|
require "minitest/reporters"
|
12
|
-
|
12
|
+
|
13
|
+
junit_ouptut_dir = ENV["JUNIT_OUTPUT_DIR"].presence || "test/reports"
|
14
|
+
Minitest::Reporters.use!([Minitest::Reporters::DefaultReporter.new, Minitest::Reporters::JUnitReporter.new(junit_ouptut_dir)])
|
13
15
|
|
14
16
|
require 'pry'
|
15
17
|
require 'honeybadger'
|
@@ -52,7 +52,7 @@ module ExceptionHandling
|
|
52
52
|
setup do
|
53
53
|
@filename = File.expand_path('../../../config/exception_filters.yml', __dir__)
|
54
54
|
@exception_catalog = ExceptionCatalog.new(@filename)
|
55
|
-
assert_nothing_raised
|
55
|
+
assert_nothing_raised do
|
56
56
|
@exception_catalog.send :load_file
|
57
57
|
end
|
58
58
|
end
|
@@ -306,9 +306,24 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
|
|
306
306
|
ExceptionHandling.ensure_safe { raise ArgumentError, "blah" }
|
307
307
|
end
|
308
308
|
|
309
|
-
|
310
|
-
|
311
|
-
|
309
|
+
if ActionView::VERSION::MAJOR >= 5
|
310
|
+
should "log an exception with call stack if an ActionView template exception is raised." do
|
311
|
+
mock(ExceptionHandling.logger).fatal(/\(Error:\d+\) ActionView::Template::Error \(blah\):\n /, anything)
|
312
|
+
ExceptionHandling.ensure_safe do
|
313
|
+
begin
|
314
|
+
# Rails 5 made the switch from ActionView::TemplateError taking in the original exception
|
315
|
+
# as an argument to using the $! global to extract the original exception
|
316
|
+
raise ArgumentError, "blah"
|
317
|
+
rescue
|
318
|
+
raise ActionView::TemplateError.new({})
|
319
|
+
end
|
320
|
+
end
|
321
|
+
end
|
322
|
+
else
|
323
|
+
should "log an exception with call stack if an ActionView template exception is raised." do
|
324
|
+
mock(ExceptionHandling.logger).fatal(/\(Error:\d+\) ActionView::Template::Error \(blah\):\n /, anything)
|
325
|
+
ExceptionHandling.ensure_safe { raise ActionView::TemplateError.new({}, ArgumentError.new("blah")) }
|
326
|
+
end
|
312
327
|
end
|
313
328
|
|
314
329
|
should "should not log an exception if an exception is not raised." do
|
metadata
CHANGED
@@ -1,57 +1,75 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exception_handling
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Invoca
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionmailer
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '4.2'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '7.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
29
|
version: '4.2'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '7.0'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: actionpack
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
|
-
- - "
|
37
|
+
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
33
39
|
version: '4.2'
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '7.0'
|
34
43
|
type: :runtime
|
35
44
|
prerelease: false
|
36
45
|
version_requirements: !ruby/object:Gem::Requirement
|
37
46
|
requirements:
|
38
|
-
- - "
|
47
|
+
- - ">="
|
39
48
|
- !ruby/object:Gem::Version
|
40
49
|
version: '4.2'
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '7.0'
|
41
53
|
- !ruby/object:Gem::Dependency
|
42
54
|
name: activesupport
|
43
55
|
requirement: !ruby/object:Gem::Requirement
|
44
56
|
requirements:
|
45
|
-
- - "
|
57
|
+
- - ">="
|
46
58
|
- !ruby/object:Gem::Version
|
47
59
|
version: '4.2'
|
60
|
+
- - "<"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '7.0'
|
48
63
|
type: :runtime
|
49
64
|
prerelease: false
|
50
65
|
version_requirements: !ruby/object:Gem::Requirement
|
51
66
|
requirements:
|
52
|
-
- - "
|
67
|
+
- - ">="
|
53
68
|
- !ruby/object:Gem::Version
|
54
69
|
version: '4.2'
|
70
|
+
- - "<"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '7.0'
|
55
73
|
- !ruby/object:Gem::Dependency
|
56
74
|
name: contextual_logger
|
57
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,6 +124,7 @@ files:
|
|
106
124
|
- ".jenkins/ruby_build_pod.yml"
|
107
125
|
- ".rubocop.yml"
|
108
126
|
- ".ruby-version"
|
127
|
+
- Appraisals
|
109
128
|
- CHANGELOG.md
|
110
129
|
- Gemfile
|
111
130
|
- Gemfile.lock
|
@@ -114,6 +133,10 @@ files:
|
|
114
133
|
- Rakefile
|
115
134
|
- config/exception_filters.yml
|
116
135
|
- exception_handling.gemspec
|
136
|
+
- gemfiles/.bundle/config
|
137
|
+
- gemfiles/rails_4.gemfile
|
138
|
+
- gemfiles/rails_5.gemfile
|
139
|
+
- gemfiles/rails_6.gemfile
|
117
140
|
- lib/exception_handling.rb
|
118
141
|
- lib/exception_handling/exception_catalog.rb
|
119
142
|
- lib/exception_handling/exception_description.rb
|