openstax_rescue_from 2.0.1 → 2.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 852b1a3ad1e57449234029b6854de07b895f2938
4
- data.tar.gz: 5ba86b4744e24377f1fd7bae8d8f4b4835124917
3
+ metadata.gz: f56fb3c7bf8ded13176b734d53f1fe4c8342abf0
4
+ data.tar.gz: 67d6bad535a4d2dec26bbacc82f1fe7e9c2b6c55
5
5
  SHA512:
6
- metadata.gz: b4e4171380854d6ecc65985e1853cc2b495ac97dee96008c4b00b443f362a4ced5f97f1f55d949b3c64f00c39925a00db1ba2c3f640b52bc1f6094fbc47b0436
7
- data.tar.gz: d7df25cb30b713ff98564d84c18b3088a0aacc19f9fa4c3c897ffda24b2b863ef6b8e72829e1b910cf06d7267807b59e45d6057ad3c29b5c7473918369d53f37
6
+ metadata.gz: 9bb963a69ecd726c5971ff26c665b172e2aa859abb1d3790111036d96c70b9ac62730dc09881e5c1001c3ae8bfab80ffffc8daaa7cfc96b7fef51d4b8c364823
7
+ data.tar.gz: a805ae5d1c5e446fbf3aa519b27127e2b3a9f94a14d2fca32d0ad0ff1ec1cee7ed588aa37c5ecd186a91fba63e3a2e0b04092ee986be178eb2fcfb5f94f0331d
@@ -3,6 +3,9 @@ require 'openstax_rescue_from'
3
3
  OpenStax::RescueFrom.configure do |config|
4
4
  config.raise_exceptions = ![false, 'false'].include?(ENV['RAISE_EXCEPTIONS']) ||
5
5
  Rails.application.config.consider_all_requests_local
6
+ config.raise_background_exceptions = ![false, 'false'].include?(
7
+ ENV['RAISE_BACKGROUND_EXCEPTIONS']
8
+ )
6
9
 
7
10
  # config.app_name = ENV['APP_NAME']
8
11
  # config.app_env = ENV['APP_ENV']
@@ -15,21 +15,25 @@ module OpenStax
15
15
  finish_exception_rescue(proxy, listener)
16
16
  end
17
17
 
18
- def perform_background_rescue(exception)
18
+ def perform_background_rescue(exception, listener = MuteListener.new)
19
19
  proxy = ExceptionProxy.new(exception)
20
20
  register_unrecognized_exception(proxy.name)
21
21
  log_background_system_error(proxy)
22
22
  send_notifying_background_exceptions(proxy)
23
- finish_background_exception_rescue(proxy)
23
+ finish_background_exception_rescue(proxy, listener)
24
24
  end
25
25
 
26
+ # Not threadsafe
26
27
  def do_not_reraise
27
28
  original = configuration.raise_exceptions
29
+ original_background = configuration.raise_background_exceptions
28
30
  begin
29
31
  configuration.raise_exceptions = false
32
+ configuration.raise_background_exceptions = false
30
33
  yield
31
34
  ensure
32
35
  configuration.raise_exceptions = original
36
+ configuration.raise_background_exceptions = original_background
33
37
  end
34
38
  end
35
39
 
@@ -46,12 +50,12 @@ module OpenStax
46
50
  end
47
51
  end
48
52
 
49
- # For rescuing from specific blocks of code: OpenStax::RescueFrom.this{...}
50
- def this
53
+ # For rescuing from specific blocks of code: OpenStax::RescueFrom.this {...}
54
+ def this(background = true)
51
55
  begin
52
56
  yield
53
- rescue Exception => e
54
- perform_rescue(e)
57
+ rescue Exception => ex
58
+ background ? perform_background_rescue(ex) : perform_rescue(ex)
55
59
  end
56
60
  end
57
61
 
@@ -190,8 +194,12 @@ module OpenStax
190
194
  end
191
195
  end
192
196
 
193
- def finish_background_exception_rescue(proxy)
194
- raise proxy.exception
197
+ def finish_background_exception_rescue(proxy, listener)
198
+ if configuration.raise_background_exceptions
199
+ raise proxy.exception
200
+ else
201
+ listener.openstax_exception_rescued(proxy, notifies_for?(proxy.name))
202
+ end
195
203
  end
196
204
  end
197
205
  end
@@ -4,9 +4,9 @@ module OpenStax
4
4
  module RescueFrom
5
5
  class Configuration
6
6
 
7
- attr_accessor :raise_exceptions, :notifier, :html_error_template_path,
8
- :html_error_template_layout_name, :app_name, :app_env,
9
- :email_prefix, :sender_address, :exception_recipients
7
+ attr_accessor :raise_exceptions, :raise_background_exceptions, :notifier,
8
+ :html_error_template_path, :html_error_template_layout_name, :app_name,
9
+ :app_env, :email_prefix, :sender_address, :exception_recipients
10
10
 
11
11
  attr_writer :contact_name
12
12
 
@@ -16,6 +16,9 @@ module OpenStax
16
16
 
17
17
  def initialize
18
18
  @raise_exceptions = ![false, 'false'].include?(ENV['RAISE_EXCEPTIONS'])
19
+ @raise_background_exceptions = ![false, 'false'].include?(
20
+ ENV['RAISE_BACKGROUND_EXCEPTIONS']
21
+ )
19
22
 
20
23
  @app_name = ENV['APP_NAME']
21
24
  @app_env = ENV['APP_ENV']
@@ -1,5 +1,5 @@
1
1
  module OpenStax
2
2
  module RescueFrom
3
- VERSION = "2.0.1"
3
+ VERSION = "2.1.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstax_rescue_from
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - JP Slavinsky
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-10-06 00:00:00.000000000 Z
12
+ date: 2017-10-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails