exception_handling 2.12.0 → 2.13.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 +4 -4
 - data/CHANGELOG.md +5 -0
 - data/Gemfile.lock +2 -2
 - data/lib/exception_handling/version.rb +1 -1
 - data/lib/exception_handling.rb +5 -2
 - data/spec/unit/exception_handling_spec.rb +75 -26
 - metadata +2 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 1125ae1526cff9890e52497ac1a8b8d93a62a481afa49a74709c5f286f53b912
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 3f882364adfb48ee837fc178cb3adcb85ab6c43b90bde5e04f96aea07559efc6
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: efbe4b3c2843a4e07daf38a83606d504714b1bfa2dedc406070fc6a1e68a66ccf379cb459f5364c0c8c8ac43b9265474ab50d9dce7f31ec78de5791ff166c195
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 1a69645d781332b9e7882921dbaded4d001c87ead47a40902b55e385c21e419ed48d9c3790cb38c38392a0fe2c872e05d003814bcd57b54e6cb27b38c3828772
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -4,6 +4,10 @@ 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.13.0] - 2022-09-15
         
     | 
| 
      
 8 
     | 
    
         
            +
            ### Added
         
     | 
| 
      
 9 
     | 
    
         
            +
            - Added an option for removing the 'exception_handling.' prefix from metric names in ExceptionHandling::default_metric_name
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
       7 
11 
     | 
    
         
             
            ## [2.12.0] - 2022-08-04
         
     | 
| 
       8 
12 
     | 
    
         
             
            ### Added
         
     | 
| 
       9 
13 
     | 
    
         
             
            - Support for passing additional Honeybadger configuration parameters
         
     | 
| 
         @@ -95,6 +99,7 @@ Note: this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0 
     | 
|
| 
       95 
99 
     | 
    
         
             
            ### Changed
         
     | 
| 
       96 
100 
     | 
    
         
             
            - No longer depends on hobo_support. Uses invoca-utils 0.3 instead.
         
     | 
| 
       97 
101 
     | 
    
         | 
| 
      
 102 
     | 
    
         
            +
            [2.13.0]: https://github.com/Invoca/exception_handling/compare/v2.12.0...v2.13.0
         
     | 
| 
       98 
103 
     | 
    
         
             
            [2.12.0]: https://github.com/Invoca/exception_handling/compare/v2.11.3...v2.12.0
         
     | 
| 
       99 
104 
     | 
    
         
             
            [2.11.3]: https://github.com/Invoca/exception_handling/compare/v2.11.2...v2.11.3
         
     | 
| 
       100 
105 
     | 
    
         
             
            [2.11.2]: https://github.com/Invoca/exception_handling/compare/v2.11.1...v2.11.2
         
     | 
    
        data/Gemfile.lock
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            PATH
         
     | 
| 
       2 
2 
     | 
    
         
             
              remote: .
         
     | 
| 
       3 
3 
     | 
    
         
             
              specs:
         
     | 
| 
       4 
     | 
    
         
            -
                exception_handling (2. 
     | 
| 
      
 4 
     | 
    
         
            +
                exception_handling (2.13.0)
         
     | 
| 
       5 
5 
     | 
    
         
             
                  actionmailer (>= 5.2, < 7.0)
         
     | 
| 
       6 
6 
     | 
    
         
             
                  actionpack (>= 5.2, < 7.0)
         
     | 
| 
       7 
7 
     | 
    
         
             
                  activesupport (>= 5.2, < 7.0)
         
     | 
| 
         @@ -97,7 +97,7 @@ GEM 
     | 
|
| 
       97 
97 
     | 
    
         
             
                pry-byebug (3.8.0)
         
     | 
| 
       98 
98 
     | 
    
         
             
                  byebug (~> 11.0)
         
     | 
| 
       99 
99 
     | 
    
         
             
                  pry (~> 0.10)
         
     | 
| 
       100 
     | 
    
         
            -
                psych (3.3. 
     | 
| 
      
 100 
     | 
    
         
            +
                psych (3.3.3)
         
     | 
| 
       101 
101 
     | 
    
         
             
                racc (1.6.0)
         
     | 
| 
       102 
102 
     | 
    
         
             
                rack (2.2.3)
         
     | 
| 
       103 
103 
     | 
    
         
             
                rack-test (1.1.0)
         
     | 
    
        data/lib/exception_handling.rb
    CHANGED
    
    | 
         @@ -71,7 +71,10 @@ module ExceptionHandling # never included 
     | 
|
| 
       71 
71 
     | 
    
         
             
                  EscalateCallback.register_if_configured!
         
     | 
| 
       72 
72 
     | 
    
         
             
                end
         
     | 
| 
       73 
73 
     | 
    
         | 
| 
       74 
     | 
    
         
            -
                def default_metric_name(exception_data, exception, treat_like_warning)
         
     | 
| 
      
 74 
     | 
    
         
            +
                def default_metric_name(exception_data, exception, treat_like_warning, include_prefix: true)
         
     | 
| 
      
 75 
     | 
    
         
            +
                  include_prefix and Deprecation3_0.deprecation_warning("the 'expection_handling.' prefix in ExceptionHandling::default_metric_name",
         
     | 
| 
      
 76 
     | 
    
         
            +
                                                                        "do not rely on metric names including the 'exception_handling.' prefix.")
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
       75 
78 
     | 
    
         
             
                  metric_name = if exception_data['metric_name']
         
     | 
| 
       76 
79 
     | 
    
         
             
                                  exception_data['metric_name']
         
     | 
| 
       77 
80 
     | 
    
         
             
                                elsif exception.is_a?(ExceptionHandling::Warning)
         
     | 
| 
         @@ -83,7 +86,7 @@ module ExceptionHandling # never included 
     | 
|
| 
       83 
86 
     | 
    
         
             
                                  "exception"
         
     | 
| 
       84 
87 
     | 
    
         
             
                                end
         
     | 
| 
       85 
88 
     | 
    
         | 
| 
       86 
     | 
    
         
            -
                  "exception_handling 
     | 
| 
      
 89 
     | 
    
         
            +
                  "#{'exception_handling.' if include_prefix}#{metric_name}"
         
     | 
| 
       87 
90 
     | 
    
         
             
                end
         
     | 
| 
       88 
91 
     | 
    
         | 
| 
       89 
92 
     | 
    
         
             
                def default_honeybadger_metric_name(honeybadger_status)
         
     | 
| 
         @@ -307,42 +307,91 @@ describe ExceptionHandling do 
     | 
|
| 
       307 
307 
     | 
    
         | 
| 
       308 
308 
     | 
    
         
             
                context "Exception Handling" do
         
     | 
| 
       309 
309 
     | 
    
         
             
                  context "default_metric_name" do
         
     | 
| 
       310 
     | 
    
         
            -
                    context " 
     | 
| 
       311 
     | 
    
         
            -
                      it " 
     | 
| 
       312 
     | 
    
         
            -
                         
     | 
| 
       313 
     | 
    
         
            -
             
     | 
| 
       314 
     | 
    
         
            -
                        expect(metric).to eq('exception_handling.special_metric')
         
     | 
| 
      
 310 
     | 
    
         
            +
                    context "with include_prefix true" do
         
     | 
| 
      
 311 
     | 
    
         
            +
                      it "logs a deprecation warning" do
         
     | 
| 
      
 312 
     | 
    
         
            +
                        expect { ExceptionHandling.default_metric_name({}, StandardError.new('this is an exception'), false) }
         
     | 
| 
      
 313 
     | 
    
         
            +
                          .to output(/DEPRECATION WARNING: the 'expection_handling\.' prefix in ExceptionHandling::default_metric_name is deprecated/).to_stderr
         
     | 
| 
       315 
314 
     | 
    
         
             
                      end
         
     | 
| 
       316 
     | 
    
         
            -
                    end
         
     | 
| 
       317 
315 
     | 
    
         | 
| 
       318 
     | 
    
         
            -
             
     | 
| 
       319 
     | 
    
         
            -
             
     | 
| 
       320 
     | 
    
         
            -
             
     | 
| 
       321 
     | 
    
         
            -
             
     | 
| 
       322 
     | 
    
         
            -
             
     | 
| 
      
 316 
     | 
    
         
            +
                      context "when metric_name is present in exception_data" do
         
     | 
| 
      
 317 
     | 
    
         
            +
                        it "include metric_name in resulting metric name" do
         
     | 
| 
      
 318 
     | 
    
         
            +
                          exception = StandardError.new('this is an exception')
         
     | 
| 
      
 319 
     | 
    
         
            +
                          metric    = ExceptionHandling.default_metric_name({ 'metric_name' => 'special_metric' }, exception, true, include_prefix: true)
         
     | 
| 
      
 320 
     | 
    
         
            +
                          expect(metric).to eq('exception_handling.special_metric')
         
     | 
| 
      
 321 
     | 
    
         
            +
                        end
         
     | 
| 
       323 
322 
     | 
    
         
             
                      end
         
     | 
| 
       324 
323 
     | 
    
         | 
| 
       325 
     | 
    
         
            -
                       
     | 
| 
       326 
     | 
    
         
            -
                         
     | 
| 
       327 
     | 
    
         
            -
             
     | 
| 
       328 
     | 
    
         
            -
             
     | 
| 
       329 
     | 
    
         
            -
             
     | 
| 
      
 324 
     | 
    
         
            +
                      context "when metric_name is not present in exception_data" do
         
     | 
| 
      
 325 
     | 
    
         
            +
                        it "return exception_handling.warning when using log warning" do
         
     | 
| 
      
 326 
     | 
    
         
            +
                          warning = ExceptionHandling::Warning.new('this is a warning')
         
     | 
| 
      
 327 
     | 
    
         
            +
                          metric  = ExceptionHandling.default_metric_name({}, warning, false, include_prefix: true)
         
     | 
| 
      
 328 
     | 
    
         
            +
                          expect(metric).to eq('exception_handling.warning')
         
     | 
| 
      
 329 
     | 
    
         
            +
                        end
         
     | 
| 
       330 
330 
     | 
    
         | 
| 
       331 
     | 
    
         
            -
             
     | 
| 
       332 
     | 
    
         
            -
             
     | 
| 
       333 
     | 
    
         
            -
                          metric 
     | 
| 
       334 
     | 
    
         
            -
                          expect(metric).to eq('exception_handling. 
     | 
| 
      
 331 
     | 
    
         
            +
                        it "return exception_handling.exception when using log error" do
         
     | 
| 
      
 332 
     | 
    
         
            +
                          exception = StandardError.new('this is an exception')
         
     | 
| 
      
 333 
     | 
    
         
            +
                          metric    = ExceptionHandling.default_metric_name({}, exception, false, include_prefix: true)
         
     | 
| 
      
 334 
     | 
    
         
            +
                          expect(metric).to eq('exception_handling.exception')
         
     | 
| 
       335 
335 
     | 
    
         
             
                        end
         
     | 
| 
       336 
336 
     | 
    
         | 
| 
       337 
     | 
    
         
            -
                         
     | 
| 
       338 
     | 
    
         
            -
                           
     | 
| 
       339 
     | 
    
         
            -
                             
     | 
| 
      
 337 
     | 
    
         
            +
                        context "when using log error with treat_like_warning" do
         
     | 
| 
      
 338 
     | 
    
         
            +
                          it "return exception_handling.unforwarded_exception when exception not present" do
         
     | 
| 
      
 339 
     | 
    
         
            +
                            metric = ExceptionHandling.default_metric_name({}, nil, true, include_prefix: true)
         
     | 
| 
      
 340 
     | 
    
         
            +
                            expect(metric).to eq('exception_handling.unforwarded_exception')
         
     | 
| 
      
 341 
     | 
    
         
            +
                          end
         
     | 
| 
      
 342 
     | 
    
         
            +
             
     | 
| 
      
 343 
     | 
    
         
            +
                          it "return exception_handling.unforwarded_exception with exception classname when exception is present" do
         
     | 
| 
      
 344 
     | 
    
         
            +
                            module SomeModule
         
     | 
| 
      
 345 
     | 
    
         
            +
                              class SomeException < StandardError
         
     | 
| 
      
 346 
     | 
    
         
            +
                              end
         
     | 
| 
       340 
347 
     | 
    
         
             
                            end
         
     | 
| 
      
 348 
     | 
    
         
            +
             
     | 
| 
      
 349 
     | 
    
         
            +
                            exception = SomeModule::SomeException.new('this is an exception')
         
     | 
| 
      
 350 
     | 
    
         
            +
                            metric    = ExceptionHandling.default_metric_name({}, exception, true, include_prefix: true)
         
     | 
| 
      
 351 
     | 
    
         
            +
                            expect(metric).to eq('exception_handling.unforwarded_exception_SomeException')
         
     | 
| 
      
 352 
     | 
    
         
            +
                          end
         
     | 
| 
      
 353 
     | 
    
         
            +
                        end
         
     | 
| 
      
 354 
     | 
    
         
            +
                      end
         
     | 
| 
      
 355 
     | 
    
         
            +
                    end
         
     | 
| 
      
 356 
     | 
    
         
            +
             
     | 
| 
      
 357 
     | 
    
         
            +
                    context "with include_prefix false" do
         
     | 
| 
      
 358 
     | 
    
         
            +
                      context "when metric_name is present in exception_data" do
         
     | 
| 
      
 359 
     | 
    
         
            +
                        it "include metric_name in resulting metric name" do
         
     | 
| 
      
 360 
     | 
    
         
            +
                          exception = StandardError.new('this is an exception')
         
     | 
| 
      
 361 
     | 
    
         
            +
                          metric    = ExceptionHandling.default_metric_name({ 'metric_name' => 'special_metric' }, exception, true, include_prefix: false)
         
     | 
| 
      
 362 
     | 
    
         
            +
                          expect(metric).to eq('special_metric')
         
     | 
| 
      
 363 
     | 
    
         
            +
                        end
         
     | 
| 
      
 364 
     | 
    
         
            +
                      end
         
     | 
| 
      
 365 
     | 
    
         
            +
             
     | 
| 
      
 366 
     | 
    
         
            +
                      context "when metric_name is not present in exception_data" do
         
     | 
| 
      
 367 
     | 
    
         
            +
                        it "return exception_handling.warning when using log warning" do
         
     | 
| 
      
 368 
     | 
    
         
            +
                          warning = ExceptionHandling::Warning.new('this is a warning')
         
     | 
| 
      
 369 
     | 
    
         
            +
                          metric  = ExceptionHandling.default_metric_name({}, warning, false, include_prefix: false)
         
     | 
| 
      
 370 
     | 
    
         
            +
                          expect(metric).to eq('warning')
         
     | 
| 
      
 371 
     | 
    
         
            +
                        end
         
     | 
| 
      
 372 
     | 
    
         
            +
             
     | 
| 
      
 373 
     | 
    
         
            +
                        it "return exception_handling.exception when using log error" do
         
     | 
| 
      
 374 
     | 
    
         
            +
                          exception = StandardError.new('this is an exception')
         
     | 
| 
      
 375 
     | 
    
         
            +
                          metric    = ExceptionHandling.default_metric_name({}, exception, false, include_prefix: false)
         
     | 
| 
      
 376 
     | 
    
         
            +
                          expect(metric).to eq('exception')
         
     | 
| 
      
 377 
     | 
    
         
            +
                        end
         
     | 
| 
      
 378 
     | 
    
         
            +
             
     | 
| 
      
 379 
     | 
    
         
            +
                        context "when using log error with treat_like_warning" do
         
     | 
| 
      
 380 
     | 
    
         
            +
                          it "return exception_handling.unforwarded_exception when exception not present" do
         
     | 
| 
      
 381 
     | 
    
         
            +
                            metric = ExceptionHandling.default_metric_name({}, nil, true, include_prefix: false)
         
     | 
| 
      
 382 
     | 
    
         
            +
                            expect(metric).to eq('unforwarded_exception')
         
     | 
| 
       341 
383 
     | 
    
         
             
                          end
         
     | 
| 
       342 
384 
     | 
    
         | 
| 
       343 
     | 
    
         
            -
                           
     | 
| 
       344 
     | 
    
         
            -
             
     | 
| 
       345 
     | 
    
         
            -
             
     | 
| 
      
 385 
     | 
    
         
            +
                          it "return exception_handling.unforwarded_exception with exception classname when exception is present" do
         
     | 
| 
      
 386 
     | 
    
         
            +
                            module SomeModule
         
     | 
| 
      
 387 
     | 
    
         
            +
                              class SomeException < StandardError
         
     | 
| 
      
 388 
     | 
    
         
            +
                              end
         
     | 
| 
      
 389 
     | 
    
         
            +
                            end
         
     | 
| 
      
 390 
     | 
    
         
            +
             
     | 
| 
      
 391 
     | 
    
         
            +
                            exception = SomeModule::SomeException.new('this is an exception')
         
     | 
| 
      
 392 
     | 
    
         
            +
                            metric    = ExceptionHandling.default_metric_name({}, exception, true, include_prefix: false)
         
     | 
| 
      
 393 
     | 
    
         
            +
                            expect(metric).to eq('unforwarded_exception_SomeException')
         
     | 
| 
      
 394 
     | 
    
         
            +
                          end
         
     | 
| 
       346 
395 
     | 
    
         
             
                        end
         
     | 
| 
       347 
396 
     | 
    
         
             
                      end
         
     | 
| 
       348 
397 
     | 
    
         
             
                    end
         
     | 
    
        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 
     | 
    
         
            +
              version: 2.13.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Invoca
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire:
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2022- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-09-15 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: actionmailer
         
     |