exception_handling 2.4.0.pre.1 → 2.4.0.pre.2

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
  SHA1:
3
- metadata.gz: becd17dbab6068dab7abb6b81bd5af8d4d48b63b
4
- data.tar.gz: 7be8edf728c439e0fbe3703a582c66523f6606ac
3
+ metadata.gz: d72ddea7583184b3af78066a245bc9ce33f7e2a4
4
+ data.tar.gz: 2adff23accc14952a2c4b3174e5796326815df3c
5
5
  SHA512:
6
- metadata.gz: 520560299d17e85a2bf1e52e95d633401efc963e6cb505f1d644f8ee4826d49c72a808613e343fe86f6e09ad2b23cd092f040f9a116a9f19f7c123e35635e9ca
7
- data.tar.gz: db6689caa551e772dd6686020e5885f2e9eefdc45d24b773b67a04619c3f8a9404fb77ae28345607260386dd298811b27c376c7b13351f09300341e14ba2c036
6
+ metadata.gz: 9563434560717302dff8633c83a7acc77c72d735a677d24e8409d9ec77997c43d267837f4565fce13290b999ee1e6a571aae6642f568109b73452e9df1137ac6
7
+ data.tar.gz: f2b64b4d2fdf615a6d55c7897c17f1cf1f129802c6e173a938a7f589be396caa6d640ef5eac89f3f085019d0e40fe7f1f012f00d96ed957a151a6d0dfca55fa5
data/Gemfile.lock CHANGED
@@ -8,7 +8,7 @@ GIT
8
8
  PATH
9
9
  remote: .
10
10
  specs:
11
- exception_handling (2.4.0.pre.1)
11
+ exception_handling (2.4.0.pre.2)
12
12
  actionmailer (~> 4.2)
13
13
  actionpack (~> 4.2)
14
14
  activesupport (~> 4.2)
@@ -164,4 +164,4 @@ DEPENDENCIES
164
164
  shoulda (> 3.1.1)
165
165
 
166
166
  BUNDLED WITH
167
- 1.17.2
167
+ 1.17.3
@@ -3,13 +3,13 @@
3
3
  require File.expand_path('lib/exception_handling/version', __dir__)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
- spec.authors = ["Colin Kelley"]
7
- spec.email = ["colindkelley@gmail.com"]
6
+ spec.authors = ["Invoca"]
7
+ spec.email = ["development@invoca.com"]
8
8
  spec.description = 'Exception handling logger/emailer'
9
9
  spec.summary = "Invoca's exception handling logger/emailer layer, based on exception_notifier. Works with Rails or EventMachine or EventMachine+Synchrony."
10
10
  spec.homepage = "https://github.com/Invoca/exception_handling"
11
11
 
12
- spec.files = `git ls-files`.split($OUTPUT_RECORD_SEPARATOR)
12
+ spec.files = `git ls-files`.split("\n")
13
13
  spec.executables = spec.files.grep(%r{^bin/}).map { |f| File.basename(f) }
14
14
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/.*\.rb})
15
15
  spec.name = "exception_handling"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExceptionHandling
4
- VERSION = '2.4.0.pre.1'
4
+ VERSION = '2.4.0.pre.2'
5
5
  end
@@ -177,13 +177,16 @@ module ExceptionHandling # never included
177
177
  # Called directly by our code, usually from rescue blocks.
178
178
  # Writes to log file and may send to honeybadger
179
179
  #
180
+ # TODO: the **log_context means we can never have context named treat_like_warning. In general, keyword args will be conflated with log_context.
181
+ # Ideally we'd separate to log_context from the other keywords so they don't interfere in any way. Or have no keyword args.
182
+ #
180
183
  # Functional Test Operation:
181
184
  # Calls into handle_stub_log_error and returns. no log file. no honeybadger
182
185
  #
183
- def log_error(exception_or_string, exception_context = '', treat_like_warning: false, **log_context, &data_callback)
186
+ def log_error(exception_or_string, exception_context = '', controller = nil, treat_like_warning: false, **log_context, &data_callback)
184
187
  ex = make_exception(exception_or_string)
185
188
  timestamp = set_log_error_timestamp
186
- exception_info = ExceptionInfo.new(ex, exception_context, timestamp, current_controller, data_callback)
189
+ exception_info = ExceptionInfo.new(ex, exception_context, timestamp, controller || current_controller, data_callback)
187
190
 
188
191
  if stub_handler
189
192
  stub_handler.handle_stub_log_error(exception_info.data)
@@ -110,14 +110,7 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
110
110
  end
111
111
 
112
112
  context "#log_error" do
113
- should "take in additional keyword args as logging context and pass them to the logger (using preferrred log_context:)" do
114
- ExceptionHandling.log_error('This is an Error', 'This is the prefix context', service_name: 'exception_handling')
115
- assert_match(/This is an Error/, logged_excluding_reload_filter.last[:message])
116
- assert_not_empty logged_excluding_reload_filter.last[:context]
117
- assert_equal({ service_name: 'exception_handling' }, logged_excluding_reload_filter.last[:context])
118
- end
119
-
120
- should "take in additional keyword args as logging context and pass them to the logger (using **)" do
113
+ should "take in additional logging context hash and pass it to the logger" do
121
114
  ExceptionHandling.log_error('This is an Error', 'This is the prefix context', service_name: 'exception_handling')
122
115
  assert_match(/This is an Error/, logged_excluding_reload_filter.last[:message])
123
116
  assert_not_empty logged_excluding_reload_filter.last[:context]
@@ -431,8 +424,8 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
431
424
 
432
425
  ExceptionHandling.ensure_escalation("ensure context") { raise ArgumentError, "first_test_exception" }
433
426
 
434
- assert_match /ArgumentError.*first_test_exception/, log_fatals[0].first
435
- assert_match /safe_email_deliver.*Delivery Error/, log_fatals[1].first
427
+ assert_match(/ArgumentError.*first_test_exception/, log_fatals[0].first)
428
+ assert_match(/safe_email_deliver.*Delivery Error/, log_fatals[1].first)
436
429
 
437
430
  assert_equal 2, log_fatals.size, log_fatals.inspect
438
431
 
@@ -550,10 +543,6 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
550
543
  end
551
544
 
552
545
  context "with Honeybadger defined" do
553
- teardown do
554
- ExceptionHandling.current_controller = nil
555
- end
556
-
557
546
  should "not send_exception_to_honeybadger when log_warning is executed" do
558
547
  dont_allow(ExceptionHandling).send_exception_to_honeybadger
559
548
  ExceptionHandling.log_warning("This should not go to honeybadger")
@@ -592,7 +581,7 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
592
581
  parameters = { advertiser_id: 435, controller: "some_controller" }
593
582
  session = { username: "jsmith" }
594
583
  request_uri = "host/path"
595
- ExceptionHandling.current_controller = create_dummy_controller(env, parameters, session, request_uri)
584
+ controller = create_dummy_controller(env, parameters, session, request_uri)
596
585
  stub(ExceptionHandling).server_name { "invoca_fe98" }
597
586
 
598
587
  exception = StandardError.new("Some Exception")
@@ -606,7 +595,7 @@ class ExceptionHandlingTest < ActiveSupport::TestCase
606
595
  mock(Honeybadger).notify.with_any_args do |data|
607
596
  honeybadger_data = data
608
597
  end
609
- ExceptionHandling.log_error(exception, exception_context) do |data|
598
+ ExceptionHandling.log_error(exception, exception_context, controller) do |data|
610
599
  data[:scm_revision] = "5b24eac37aaa91f5784901e9aabcead36fd9df82"
611
600
  data[:user_details] = { username: "jsmith" }
612
601
  data[:event_response] = "Event successfully received"
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exception_handling
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0.pre.1
4
+ version: 2.4.0.pre.2
5
5
  platform: ruby
6
6
  authors:
7
- - Colin Kelley
7
+ - Invoca
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
@@ -110,7 +110,7 @@ dependencies:
110
110
  version: '0.0'
111
111
  description: Exception handling logger/emailer
112
112
  email:
113
- - colindkelley@gmail.com
113
+ - development@invoca.com
114
114
  executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []