exception_handling 2.4.2 → 2.4.3.pre.1

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: 55e89ccca99bfdef126c57f9674d62d90d2048405099e83467ddc2997ffb3526
4
- data.tar.gz: f7fae0d722026d38af12400a95812a14e2a7f32e7d79cbae90b3bd332a30fc04
3
+ metadata.gz: b5acc3546b0ac3da2bcfbdc00e013fafa3d4fa552dc3d899a61e109c9b406b93
4
+ data.tar.gz: 05ddf01fa324a5951b6af074ade46090db6fe9288a85d137331f33ababf9e8e9
5
5
  SHA512:
6
- metadata.gz: 509366eaf0081abe570f51d1ff09707a1ff880e94870616b850b5af000bc489d304bf222452799ff5f9848190247a3c526feb2ac4e3a62057dd04a3558e585eb
7
- data.tar.gz: 7b26674dbf9862b43ba7b63650b1a9bc637d3b360d28b469e8d5ec231d3db7af7c4d12030e5e93653c1b1d2c2b84c47189a269472ce8c9dc6b370a5ee43cd3cb
6
+ metadata.gz: a2cc8be5a481a2ef381f710f5c566415635e2cbe8964a5d15ef0612aea72a4a62e7dde5a571b354025c8c0ca98076c323cedaab96ab54cff2e9359700b487dc4
7
+ data.tar.gz: 259376e8b5a1053203f5aeb358b765a7b61b56bd817e1a664e2b98ea2ca783d7f46997056ec4508007f36e002122e83f4d992a3b27d29984d852ae9c1a698922
data/.gitignore CHANGED
@@ -3,3 +3,4 @@
3
3
  .rubocop-http*
4
4
  test/reports/*
5
5
  gemfiles/*.lock
6
+ pkg/
data/Appraisals CHANGED
@@ -7,9 +7,9 @@ appraise "rails-4" do
7
7
  end
8
8
 
9
9
  appraise "rails-5" do
10
- gem 'actionmailer', '~> 5.0'
11
- gem 'actionpack', '~> 5.0'
12
- gem 'activesupport', '~> 5.0'
10
+ gem 'actionmailer', '~> 5.2'
11
+ gem 'actionpack', '~> 5.2'
12
+ gem 'activesupport', '~> 5.2'
13
13
  end
14
14
 
15
15
  appraise "rails-6" do
data/CHANGELOG.md CHANGED
@@ -4,6 +4,13 @@ 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.3] - Unreleased
8
+ ### Deprecated
9
+ - In `ExceptionHandling.logger=`, implicit `logger.extend ContextualLogger::LoggerMixin` is now deprecated.
10
+ This will be removed in version 3.0 and an `ArgumentError` will be raised if the logger
11
+ doesn't have that mixin. Instead of this implicit behavior, you should explicitly either `extend`
12
+ your logger instance or `include` that mixin into your `Logger` class.
13
+
7
14
  ## [2.4.2] - 2020-05-11
8
15
  ### Added
9
16
  - Added support for rails 5 and 6.
@@ -17,5 +24,6 @@ Note: this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0
17
24
  ### Changed
18
25
  - No longer depends on hobo_support. Uses invoca-utils 0.3 instead.
19
26
 
27
+ [2.4.3]: https://github.com/Invoca/exception_handling/compare/v2.4.2...v2.4.3
20
28
  [2.4.2]: https://github.com/Invoca/exception_handling/compare/v2.4.1...v2.4.2
21
29
  [2.4.1]: https://github.com/Invoca/exception_handling/compare/v2.4.0...v2.4.1
data/Gemfile.lock CHANGED
@@ -8,7 +8,7 @@ GIT
8
8
  PATH
9
9
  remote: .
10
10
  specs:
11
- exception_handling (2.4.2)
11
+ exception_handling (2.4.3.pre.1)
12
12
  actionmailer (>= 4.2, < 7.0)
13
13
  actionpack (>= 4.2, < 7.0)
14
14
  activesupport (>= 4.2, < 7.0)
data/README.md CHANGED
@@ -4,7 +4,7 @@ Enable emails for your exceptions that occur in your application!
4
4
 
5
5
  ## Dependencies
6
6
  - Ruby 2.6
7
- - Rails >= 4, < 7
7
+ - Rails >= 4.2, < 7
8
8
 
9
9
  ## Installation
10
10
 
@@ -11,8 +11,8 @@ gem "rake"
11
11
  gem "rr"
12
12
  gem "rubocop"
13
13
  gem "shoulda"
14
- gem "actionmailer", "~> 5.0"
15
- gem "actionpack", "~> 5.0"
16
- gem "activesupport", "~> 5.0"
14
+ gem "actionmailer", "~> 5.2"
15
+ gem "actionpack", "~> 5.2"
16
+ gem "activesupport", "~> 5.2"
17
17
 
18
18
  gemspec path: "../"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExceptionHandling
4
- VERSION = '2.4.2'
4
+ VERSION = '2.4.3.pre.1'
5
5
  end
@@ -54,8 +54,15 @@ module ExceptionHandling # never included
54
54
  @logger or raise ArgumentError, "You must assign a value to #{name}.logger"
55
55
  end
56
56
 
57
+ Deprecation3_0 = ActiveSupport::Deprecation.new('3.0', 'exception_handling')
58
+
57
59
  def logger=(logger)
58
- @logger = logger.is_a?(ContextualLogger) ? logger : ContextualLogger.new(logger)
60
+ @logger = if logger.is_a?(ContextualLogger::LoggerMixin)
61
+ logger
62
+ else
63
+ Deprecation3_0.deprecation_warning('implicit extend with ContextualLogger::LoggerMixin', 'extend your logger instance or include your into your logger class first')
64
+ logger.extend(ContextualLogger::LoggerMixin)
65
+ end
59
66
  end
60
67
 
61
68
  def default_metric_name(exception_data, exception, treat_like_warning)
data/test/test_helper.rb CHANGED
@@ -23,10 +23,13 @@ require 'exception_handling/testing'
23
23
  ActiveSupport::TestCase.test_order = :sorted
24
24
 
25
25
  class LoggerStub
26
- include ContextualLogger
27
- attr_accessor :logged
26
+ include ContextualLogger::LoggerMixin
27
+ attr_accessor :logged, :level
28
28
 
29
29
  def initialize
30
+ @level = Logger::Severity::DEBUG
31
+ @progname = nil
32
+ @logdev = nil
30
33
  clear
31
34
  end
32
35
 
@@ -8,6 +8,10 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
8
8
  include ControllerHelpers
9
9
  include ExceptionHelpers
10
10
 
11
+ setup do
12
+ @fail_count = 0
13
+ end
14
+
11
15
  def dont_stub_log_error
12
16
  true
13
17
  end
@@ -109,6 +113,30 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
109
113
  stub(Honeybadger).notify(anything)
110
114
  end
111
115
 
116
+ context "with logger stashed" do
117
+ setup { @original_logger = ExceptionHandling.logger }
118
+ teardown { ExceptionHandling.logger = @original_logger }
119
+
120
+ should "store logger as-is if it has ContextualLogger::Mixin" do
121
+ logger = Logger.new('/dev/null')
122
+ logger.extend(ContextualLogger::LoggerMixin)
123
+ ancestors = logger.singleton_class.ancestors.*.name
124
+
125
+ ExceptionHandling.logger = logger
126
+ assert_equal ancestors, ExceptionHandling.logger.singleton_class.ancestors.*.name
127
+ end
128
+
129
+ should "[deprecated] mix in ContextualLogger::Mixin if not there" do
130
+ mock(STDERR).puts(/DEPRECATION WARNING: implicit extend with ContextualLogger::LoggerMixin is deprecated and will be removed from exception_handling 3\.0/)
131
+ logger = Logger.new('/dev/null')
132
+ ancestors = logger.singleton_class.ancestors.*.name
133
+
134
+ ExceptionHandling.logger = logger
135
+ assert_not_equal ancestors, ExceptionHandling.logger.singleton_class.ancestors.*.name
136
+ assert_kind_of ContextualLogger::LoggerMixin, ExceptionHandling.logger
137
+ end
138
+ end
139
+
112
140
  context "#log_error" do
113
141
  should "take in additional logging context hash and pass it to the logger" do
114
142
  ExceptionHandling.log_error('This is an Error', 'This is the prefix context', service_name: 'exception_handling')
@@ -168,7 +196,6 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
168
196
  end
169
197
 
170
198
  should "support a log_error hook, and pass exception_data, treat_like_warning, and logged_to_honeybadger to it" do
171
- @fail_count = 0
172
199
  @honeybadger_status = nil
173
200
  ExceptionHandling.post_log_error_hook = method(:log_error_callback_config)
174
201
 
@@ -185,7 +212,6 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
185
212
  end
186
213
 
187
214
  should "plumb treat_like_warning and logged_to_honeybadger to log error hook" do
188
- @fail_count = 0
189
215
  @honeybadger_status = nil
190
216
  ExceptionHandling.post_log_error_hook = method(:log_error_callback_config)
191
217
  ExceptionHandling.log_error(StandardError.new("Some Exception"), "mooo", treat_like_warning: true)
@@ -658,7 +684,6 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
658
684
  end
659
685
 
660
686
  should "not send notification to honeybadger when exception description has the flag turned off and call log error callback with logged_to_honeybadger set to nil" do
661
- @fail_count = 0
662
687
  @honeybadger_status = nil
663
688
  ExceptionHandling.post_log_error_hook = method(:log_error_callback_config)
664
689
  filter_list = {
@@ -677,7 +702,6 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
677
702
  end
678
703
 
679
704
  should "call log error callback with logged_to_honeybadger set to false if an error occurs while attempting to notify honeybadger" do
680
- @fail_count = 0
681
705
  @honeybadger_status = nil
682
706
  ExceptionHandling.post_log_error_hook = method(:log_error_callback_config)
683
707
  mock(Honeybadger).notify.with_any_args { raise "Honeybadger Notification Failure" }
@@ -686,7 +710,6 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
686
710
  end
687
711
 
688
712
  should "call log error callback with logged_to_honeybadger set to false on unsuccessful honeybadger notification" do
689
- @fail_count = 0
690
713
  @honeybadger_status = nil
691
714
  ExceptionHandling.post_log_error_hook = method(:log_error_callback_config)
692
715
  mock(Honeybadger).notify.with_any_args { false }
@@ -695,7 +718,6 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
695
718
  end
696
719
 
697
720
  should "call log error callback with logged_to_honeybadger set to true on successful honeybadger notification" do
698
- @fail_count = 0
699
721
  @honeybadger_status = nil
700
722
  ExceptionHandling.post_log_error_hook = method(:log_error_callback_config)
701
723
  mock(Honeybadger).notify.with_any_args { '06220c5a-b471-41e5-baeb-de247da45a56' }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exception_handling
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.2
4
+ version: 2.4.3.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Invoca
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-11 00:00:00.000000000 Z
11
+ date: 2020-05-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionmailer
@@ -179,9 +179,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
179
179
  version: '0'
180
180
  required_rubygems_version: !ruby/object:Gem::Requirement
181
181
  requirements:
182
- - - ">="
182
+ - - ">"
183
183
  - !ruby/object:Gem::Version
184
- version: '0'
184
+ version: 1.3.1
185
185
  requirements: []
186
186
  rubygems_version: 3.0.3
187
187
  signing_key: