openstax_rescue_from 1.9.0 → 2.0.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/.gitignore +10 -10
- data/.rspec +1 -1
- data/.ruby-version +1 -0
- data/.travis.yml +10 -12
- data/Gemfile +3 -0
- data/README.md +13 -11
- data/Rakefile +5 -4
- data/lib/generators/{open_stax → openstax}/rescue_from/install/install_generator.rb +1 -1
- data/lib/generators/openstax/rescue_from/install/templates/rescue_from.rb +93 -0
- data/lib/generators/{open_stax → openstax}/rescue_from/views/views_generator.rb +1 -1
- data/lib/openstax/rescue_from/background_job.rb +19 -0
- data/lib/openstax/rescue_from/controller.rb +3 -1
- data/lib/openstax/rescue_from/default_exceptions.rb +8 -8
- data/lib/openstax/rescue_from/engine.rb +6 -8
- data/lib/openstax/rescue_from/logger.rb +10 -8
- data/lib/openstax/rescue_from/version.rb +1 -1
- data/lib/openstax/rescue_from/view_helpers.rb +2 -0
- data/lib/openstax/rescue_from.rb +35 -0
- data/openstax_rescue_from.gemspec +10 -12
- metadata +34 -59
- data/.ruby-gemset +0 -1
- data/lib/generators/open_stax/rescue_from/install/templates/rescue_from.rb +0 -55
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7bf24690f8a8f287e02d04f44588a5a99d9c4fd5
|
4
|
+
data.tar.gz: 4d93f369b6ae290af96973165e09cde2c3614f37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71e70db5a362c7aebbccf785e2a377734318c95335163933cd89092485dd97e768de566f75fc3798b017be90cc05f26acff7c6a29546ca28fa54a1118192d016
|
7
|
+
data.tar.gz: 13125e2ad5c2a7dd7907e38bf8ce268afec1bd84eb78513db9419bf594fa09c3fbb829ab2391a167f181b7f2834590c6cd03241dbc0405a1ea6f91b8a06de1d5
|
data/.gitignore
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
tmp
|
1
|
+
.bundle
|
2
|
+
.yardoc
|
3
|
+
Gemfile.lock
|
4
|
+
_yardoc
|
5
|
+
coverage
|
6
|
+
doc
|
7
|
+
pkg
|
8
|
+
spec/reports
|
9
|
+
tmp
|
10
10
|
*.log
|
11
|
+
.byebug_history
|
11
12
|
.DS_Store
|
12
13
|
*~
|
13
|
-
spec/dummy/db/*.sqlite3
|
data/.rspec
CHANGED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.2.3
|
data/.travis.yml
CHANGED
@@ -1,19 +1,17 @@
|
|
1
|
+
branches:
|
2
|
+
only:
|
3
|
+
- master
|
1
4
|
sudo: false
|
5
|
+
dist: trusty
|
2
6
|
language: ruby
|
3
|
-
rvm:
|
4
|
-
|
7
|
+
rvm: "2.2.3"
|
8
|
+
addons:
|
9
|
+
postgresql: "9.5"
|
5
10
|
cache: bundler
|
6
11
|
bundler_args: --retry=6
|
12
|
+
before_script:
|
13
|
+
- bundle exec rake --trace db:setup
|
7
14
|
script:
|
8
|
-
- bundle exec
|
15
|
+
- bundle exec rspec --format progress --tag ~type:acceptance
|
9
16
|
notifications:
|
10
17
|
email: false
|
11
|
-
addons:
|
12
|
-
postgresql: "9.5"
|
13
|
-
before_install:
|
14
|
-
- gem install bundler
|
15
|
-
before_script:
|
16
|
-
- export OXT_DB_USER=postgres
|
17
|
-
- export OXT_DB_PASS=
|
18
|
-
- export OXT_TEST_DB=travis_ci_test
|
19
|
-
- bundle exec rake db:create:all db:migrate
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -27,20 +27,13 @@ Or install it yourself as:
|
|
27
27
|
Run the install generator to get the config initializer
|
28
28
|
|
29
29
|
```
|
30
|
-
$ rails g
|
30
|
+
$ rails g openstax:rescue_from:install
|
31
31
|
```
|
32
32
|
|
33
|
-
|
33
|
+
You can override the controller action that renders the error templates:
|
34
34
|
|
35
35
|
```ruby
|
36
36
|
class ApplicationController < ActionController::Base
|
37
|
-
|
38
|
-
# ...
|
39
|
-
|
40
|
-
use_openstax_exception_rescue
|
41
|
-
|
42
|
-
# ...
|
43
|
-
|
44
37
|
# Override the rescued hook which is called when configuration.raise_exceptions is false
|
45
38
|
# (See 'Controller hook')
|
46
39
|
#
|
@@ -49,7 +42,7 @@ class ApplicationController < ActionController::Base
|
|
49
42
|
# # RescueFrom.configuration private method available to you
|
50
43
|
#
|
51
44
|
# respond_to do |f|
|
52
|
-
# f.xml { render
|
45
|
+
# f.xml { render plain: "I respond strangely to the XML format!",
|
53
46
|
# status: exception_proxy.status }
|
54
47
|
# end
|
55
48
|
# end
|
@@ -109,6 +102,15 @@ OpenStax::RescueFrom.configure do |config|
|
|
109
102
|
config.sender_address = ENV['EXCEPTION_SENDER']
|
110
103
|
config.exception_recipients = ENV['EXCEPTION_RECIPIENTS']
|
111
104
|
end
|
105
|
+
|
106
|
+
# Exceptions in controllers might be reraised or not depending on the settings above
|
107
|
+
ActionController::Base.use_openstax_exception_rescue
|
108
|
+
|
109
|
+
# RescueFrom always reraises background exceptions so that the background job may properly fail
|
110
|
+
ActiveJob::Base.use_openstax_exception_rescue
|
111
|
+
|
112
|
+
# URL generation errors are caused by bad routes, for example, and should not be ignored
|
113
|
+
ExceptionNotifier.ignored_exceptions.delete("ActionController::UrlGenerationError")
|
112
114
|
```
|
113
115
|
|
114
116
|
## Controller hook
|
@@ -139,7 +141,7 @@ def openstax_exception_rescued(exception_proxy, did_notify)
|
|
139
141
|
status: exception_proxy.status }
|
140
142
|
f.json { render json: { error_id: exception_proxy.error_id }
|
141
143
|
status: exception_proxy.status }
|
142
|
-
f.all {
|
144
|
+
f.all { head exception_proxy.status }
|
143
145
|
end
|
144
146
|
end
|
145
147
|
|
data/Rakefile
CHANGED
@@ -2,8 +2,9 @@
|
|
2
2
|
|
3
3
|
begin
|
4
4
|
require 'bundler/setup'
|
5
|
-
rescue LoadError
|
5
|
+
rescue LoadError => exception
|
6
6
|
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
7
|
+
raise exception
|
7
8
|
end
|
8
9
|
|
9
10
|
APP_RAKEFILE = File.expand_path('../spec/dummy/Rakefile', __FILE__)
|
@@ -14,7 +15,7 @@ Bundler::GemHelper.install_tasks
|
|
14
15
|
require 'rspec/core'
|
15
16
|
require 'rspec/core/rake_task'
|
16
17
|
|
17
|
-
desc
|
18
|
-
RSpec::Core::RakeTask.new(:
|
18
|
+
desc 'Run all specs in spec directory (excluding plugin specs)'
|
19
|
+
RSpec::Core::RakeTask.new(spec: 'app:db:test:prepare')
|
19
20
|
|
20
|
-
task :
|
21
|
+
task default: :spec
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require 'openstax_rescue_from'
|
2
|
+
|
3
|
+
OpenStax::RescueFrom.configure do |config|
|
4
|
+
config.raise_exceptions = ![false, 'false'].include?(ENV['RAISE_EXCEPTIONS']) ||
|
5
|
+
Rails.application.config.consider_all_requests_local
|
6
|
+
|
7
|
+
# config.app_name = ENV['APP_NAME']
|
8
|
+
# config.app_env = ENV['APP_ENV']
|
9
|
+
# config.contact_name = ENV['EXCEPTION_CONTACT_NAME']
|
10
|
+
|
11
|
+
# config.notifier = ExceptionNotifier
|
12
|
+
|
13
|
+
# config.html_error_template_path = 'errors/any'
|
14
|
+
# config.html_error_template_layout_name = 'application'
|
15
|
+
|
16
|
+
# config.email_prefix = "[#{app_name}] (#{app_env}) "
|
17
|
+
# config.sender_address = ENV['EXCEPTION_SENDER']
|
18
|
+
# config.exception_recipients = ENV['EXCEPTION_RECIPIENTS']
|
19
|
+
end
|
20
|
+
|
21
|
+
# Exceptions in controllers might be reraised or not depending on the settings above
|
22
|
+
ActionController::Base.use_openstax_exception_rescue
|
23
|
+
|
24
|
+
# RescueFrom always reraises background exceptions so that the background job may properly fail
|
25
|
+
ActiveJob::Base.use_openstax_exception_rescue
|
26
|
+
|
27
|
+
# URL generation errors are caused by bad routes, for example, and should not be ignored
|
28
|
+
ExceptionNotifier.ignored_exceptions.delete("ActionController::UrlGenerationError")
|
29
|
+
|
30
|
+
# OpenStax::RescueFrom.translate_status_codes(
|
31
|
+
# internal_server_error: "Sorry, #{OpenStax::RescueFrom.configuration.app_name} had some unexpected trouble with your request.",
|
32
|
+
# not_found: 'We could not find the requested information.',
|
33
|
+
# bad_request: 'The request was unrecognized.',
|
34
|
+
# forbidden: 'You are not allowed to do that.',
|
35
|
+
# unprocessable_entity: 'Your browser asked for something that we cannot do.'
|
36
|
+
# )
|
37
|
+
|
38
|
+
# OpenStax::RescueFrom#register_exception default options:
|
39
|
+
# { notify: true, status: :internal_server_error, extras: ->(exception) { {} } }
|
40
|
+
#
|
41
|
+
# NOTE: Any unregistered exceptions rescued during run-time
|
42
|
+
# will be registered with RescueFrom with the above options
|
43
|
+
#
|
44
|
+
# Default exceptions:
|
45
|
+
#
|
46
|
+
# RescueFrom.register_exception(ActiveRecord::RecordNotFound,
|
47
|
+
# notify: false,
|
48
|
+
# status: :not_found)
|
49
|
+
#
|
50
|
+
# RescueFrom.register_exception(ActionController::RoutingError,
|
51
|
+
# notify: false,
|
52
|
+
# status: :not_found)
|
53
|
+
#
|
54
|
+
# RescueFrom.register_exception(ActionController::UnknownController,
|
55
|
+
# notify: false,
|
56
|
+
# status: :not_found)
|
57
|
+
#
|
58
|
+
# RescueFrom.register_exception(ActionController::InvalidAuthenticityToken,
|
59
|
+
# notify: false,
|
60
|
+
# status: :unprocessable_entity)
|
61
|
+
#
|
62
|
+
# RescueFrom.register_exception(AbstractController::ActionNotFound,
|
63
|
+
# notify: false,
|
64
|
+
# status: :not_found)
|
65
|
+
#
|
66
|
+
# RescueFrom.register_exception(ActionView::MissingTemplate,
|
67
|
+
# notify: false,
|
68
|
+
# status: :bad_request)
|
69
|
+
#
|
70
|
+
# RescueFrom.register_exception(ActionController::UnknownHttpMethod,
|
71
|
+
# notify: false,
|
72
|
+
# status: :bad_request)
|
73
|
+
#
|
74
|
+
# RescueFrom.register_exception(ActionController::ParameterMissing,
|
75
|
+
# notify: false,
|
76
|
+
# status: :bad_request)
|
77
|
+
#
|
78
|
+
# RescueFrom.register_exception('SecurityTransgression',
|
79
|
+
# notify: false,
|
80
|
+
# status: :forbidden)
|
81
|
+
#
|
82
|
+
# RescueFrom.register_exception('OAuth2::Error',
|
83
|
+
# extras: ->(ex) {
|
84
|
+
# {
|
85
|
+
# headers: ex.response.headers,
|
86
|
+
# status: ex.response.status,
|
87
|
+
# body: ex.response.body
|
88
|
+
# }
|
89
|
+
# })
|
90
|
+
#
|
91
|
+
# RescueFrom.register_exception('Apipie::ParamMissing',
|
92
|
+
# notify: false,
|
93
|
+
# status: :unprocessable_entity)
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module OpenStax
|
2
|
+
module RescueFrom
|
3
|
+
module BackgroundJob
|
4
|
+
def self.included(base)
|
5
|
+
base.extend ClassMethods
|
6
|
+
end
|
7
|
+
|
8
|
+
module ClassMethods
|
9
|
+
def use_openstax_exception_rescue
|
10
|
+
rescue_from Exception do |exception|
|
11
|
+
RescueFrom.perform_background_rescue(exception)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
ActiveJob::Base.send :include, OpenStax::RescueFrom::BackgroundJob
|
@@ -28,7 +28,7 @@ module OpenStax
|
|
28
28
|
f.json { render json: { error_id: did_notify ? proxy.error_id : nil },
|
29
29
|
status: proxy.status }
|
30
30
|
|
31
|
-
f.all {
|
31
|
+
f.all { head proxy.status }
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -39,3 +39,5 @@ module OpenStax
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
end
|
42
|
+
|
43
|
+
ActionController::Base.send :include, OpenStax::RescueFrom::Controller
|
@@ -26,6 +26,14 @@ module OpenStax
|
|
26
26
|
notify: false,
|
27
27
|
status: :bad_request)
|
28
28
|
|
29
|
+
RescueFrom.register_exception(ActionController::UnknownHttpMethod,
|
30
|
+
notify: false,
|
31
|
+
status: :bad_request)
|
32
|
+
|
33
|
+
RescueFrom.register_exception(ActionController::ParameterMissing,
|
34
|
+
notify: false,
|
35
|
+
status: :bad_request)
|
36
|
+
|
29
37
|
RescueFrom.register_exception('SecurityTransgression',
|
30
38
|
notify: false,
|
31
39
|
status: :forbidden)
|
@@ -40,14 +48,6 @@ module OpenStax
|
|
40
48
|
RescueFrom.register_exception('Apipie::ParamMissing',
|
41
49
|
notify: false,
|
42
50
|
status: :unprocessable_entity)
|
43
|
-
|
44
|
-
RescueFrom.register_exception(ActionController::UnknownHttpMethod,
|
45
|
-
notify: false,
|
46
|
-
status: :bad_request)
|
47
|
-
|
48
|
-
RescueFrom.register_exception(ActionController::ParameterMissing,
|
49
|
-
notify: false,
|
50
|
-
status: :bad_request)
|
51
51
|
end
|
52
52
|
end
|
53
53
|
end
|
@@ -3,6 +3,12 @@ require 'openstax/rescue_from/default_exceptions'
|
|
3
3
|
module OpenStax
|
4
4
|
module RescueFrom
|
5
5
|
class Engine < ::Rails::Engine
|
6
|
+
initializer 'openstax.rescue_from.inflection' do
|
7
|
+
ActiveSupport::Inflector.inflections do |inflect|
|
8
|
+
inflect.acronym 'OpenStax'
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
6
12
|
initializer "openstax.rescue_from.use_exception_notification_middleware" do
|
7
13
|
Rails.application.config.middleware.use ExceptionNotification::Rack, email: {
|
8
14
|
email_prefix: RescueFrom.configuration.email_prefix,
|
@@ -17,11 +23,3 @@ module OpenStax
|
|
17
23
|
end
|
18
24
|
end
|
19
25
|
end
|
20
|
-
|
21
|
-
ActionController::Base.send :include, OpenStax::RescueFrom::Controller
|
22
|
-
|
23
|
-
ActiveSupport::Inflector.inflections do |inflect|
|
24
|
-
inflect.acronym 'OpenStax'
|
25
|
-
end
|
26
|
-
|
27
|
-
ActionView::Base.send :include, OpenStax::RescueFrom::ViewHelpers
|
@@ -1,24 +1,26 @@
|
|
1
1
|
module OpenStax
|
2
2
|
module RescueFrom
|
3
3
|
class Logger
|
4
|
-
attr_reader :
|
4
|
+
attr_reader :exception_proxy, :logger
|
5
5
|
|
6
|
-
def initialize(
|
7
|
-
@
|
6
|
+
def initialize(exception_proxy, logger = Rails.logger)
|
7
|
+
@exception_proxy = exception_proxy
|
8
|
+
@logger = logger
|
8
9
|
end
|
9
10
|
|
10
11
|
def record_system_error!(prefix = "An exception occurred")
|
11
|
-
|
12
|
-
|
13
|
-
|
12
|
+
logger.error("#{prefix}: #{exception_proxy.name} [#{exception_proxy.error_id}] " +
|
13
|
+
"<#{exception_proxy.message}> #{exception_proxy.extras}\n\n" +
|
14
|
+
"#{exception_proxy.logger_backtrace}")
|
14
15
|
|
15
16
|
record_system_error_recursively!
|
16
17
|
end
|
17
18
|
|
18
19
|
private
|
19
20
|
def record_system_error_recursively!
|
20
|
-
if
|
21
|
-
RescueFrom.
|
21
|
+
if exception_proxy.cause
|
22
|
+
RescueFrom.register_exception(exception_proxy.cause.class)
|
23
|
+
@exception_proxy = ExceptionProxy.new(exception_proxy.cause)
|
22
24
|
record_system_error!("Exception cause")
|
23
25
|
end
|
24
26
|
end
|
data/lib/openstax/rescue_from.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'openstax/rescue_from/exception_options'
|
2
2
|
require 'openstax/rescue_from/controller'
|
3
|
+
require 'openstax/rescue_from/background_job'
|
3
4
|
require 'openstax/rescue_from/view_helpers'
|
4
5
|
require 'openstax/rescue_from/configuration'
|
5
6
|
|
@@ -14,6 +15,14 @@ module OpenStax
|
|
14
15
|
finish_exception_rescue(proxy, listener)
|
15
16
|
end
|
16
17
|
|
18
|
+
def perform_background_rescue(exception)
|
19
|
+
proxy = ExceptionProxy.new(exception)
|
20
|
+
register_unrecognized_exception(proxy.name)
|
21
|
+
log_background_system_error(proxy)
|
22
|
+
send_notifying_background_exceptions(proxy)
|
23
|
+
finish_background_exception_rescue(proxy)
|
24
|
+
end
|
25
|
+
|
17
26
|
def do_not_reraise
|
18
27
|
original = configuration.raise_exceptions
|
19
28
|
begin
|
@@ -132,6 +141,11 @@ module OpenStax
|
|
132
141
|
end
|
133
142
|
end
|
134
143
|
|
144
|
+
def log_background_system_error(proxy)
|
145
|
+
logger = Logger.new(proxy)
|
146
|
+
logger.record_system_error!('A background job exception occurred')
|
147
|
+
end
|
148
|
+
|
135
149
|
def send_notifying_exceptions(proxy, listener)
|
136
150
|
if notifies_for?(proxy.name)
|
137
151
|
configuration.notifier.notify_exception(
|
@@ -151,6 +165,23 @@ module OpenStax
|
|
151
165
|
end
|
152
166
|
end
|
153
167
|
|
168
|
+
def send_notifying_background_exceptions(proxy)
|
169
|
+
if notifies_for?(proxy.name)
|
170
|
+
configuration.notifier.notify_exception(
|
171
|
+
proxy.exception,
|
172
|
+
data: {
|
173
|
+
error_id: proxy.error_id,
|
174
|
+
class: proxy.name,
|
175
|
+
message: proxy.message,
|
176
|
+
first_line_of_backtrace: proxy.first_backtrace_line,
|
177
|
+
cause: proxy.cause,
|
178
|
+
extras: proxy.extras
|
179
|
+
},
|
180
|
+
sections: %w(data environment backtrace)
|
181
|
+
)
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
154
185
|
def finish_exception_rescue(proxy, listener)
|
155
186
|
if configuration.raise_exceptions
|
156
187
|
raise proxy.exception
|
@@ -158,6 +189,10 @@ module OpenStax
|
|
158
189
|
listener.openstax_exception_rescued(proxy, notifies_for?(proxy.name))
|
159
190
|
end
|
160
191
|
end
|
192
|
+
|
193
|
+
def finish_background_exception_rescue(proxy)
|
194
|
+
raise proxy.exception
|
195
|
+
end
|
161
196
|
end
|
162
197
|
end
|
163
198
|
end
|
@@ -9,25 +9,23 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["JP Slavinsky", "Joe Sak"]
|
10
10
|
spec.email = ["jps@kindlinglabs.com", "joe@avant-gardelabs.com"]
|
11
11
|
|
12
|
-
spec.summary =
|
12
|
+
spec.summary = "Common exception `rescue_from` handling for OpenStax sites."
|
13
13
|
spec.homepage = "https://github.com/openstax/rescue_from"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(
|
17
|
-
spec.bindir = "
|
18
|
-
spec.executables =
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(/spec\//) }
|
17
|
+
spec.bindir = "bin"
|
18
|
+
spec.executables = ["console", "setup"]
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.required_ruby_version = '
|
21
|
+
spec.required_ruby_version = '>= 2.0'
|
22
22
|
|
23
23
|
spec.add_dependency "rails", '>= 3.1', '< 6.0'
|
24
24
|
spec.add_dependency "exception_notification", '>= 4.1', '< 5.0'
|
25
25
|
|
26
|
-
spec.add_development_dependency "
|
27
|
-
spec.add_development_dependency "
|
28
|
-
spec.add_development_dependency "
|
29
|
-
spec.add_development_dependency "
|
30
|
-
spec.add_development_dependency "
|
31
|
-
spec.add_development_dependency "pry-rails", '~> 0.3.4'
|
32
|
-
spec.add_development_dependency "database_cleaner", '~> 1.5.0'
|
26
|
+
spec.add_development_dependency "bundler"
|
27
|
+
spec.add_development_dependency "pg"
|
28
|
+
spec.add_development_dependency "rspec-rails"
|
29
|
+
spec.add_development_dependency "rails-controller-testing"
|
30
|
+
spec.add_development_dependency "database_cleaner"
|
33
31
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openstax_rescue_from
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- JP Slavinsky
|
8
8
|
- Joe Sak
|
9
9
|
autorequire:
|
10
|
-
bindir:
|
10
|
+
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-10-
|
12
|
+
date: 2017-10-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -51,115 +51,89 @@ dependencies:
|
|
51
51
|
- - "<"
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '5.0'
|
54
|
-
- !ruby/object:Gem::Dependency
|
55
|
-
name: sqlite3
|
56
|
-
requirement: !ruby/object:Gem::Requirement
|
57
|
-
requirements:
|
58
|
-
- - "~>"
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
version: 1.3.10
|
61
|
-
type: :development
|
62
|
-
prerelease: false
|
63
|
-
version_requirements: !ruby/object:Gem::Requirement
|
64
|
-
requirements:
|
65
|
-
- - "~>"
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version: 1.3.10
|
68
54
|
- !ruby/object:Gem::Dependency
|
69
55
|
name: bundler
|
70
56
|
requirement: !ruby/object:Gem::Requirement
|
71
57
|
requirements:
|
72
|
-
- - "
|
58
|
+
- - ">="
|
73
59
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
60
|
+
version: '0'
|
75
61
|
type: :development
|
76
62
|
prerelease: false
|
77
63
|
version_requirements: !ruby/object:Gem::Requirement
|
78
64
|
requirements:
|
79
|
-
- - "
|
65
|
+
- - ">="
|
80
66
|
- !ruby/object:Gem::Version
|
81
|
-
version: '
|
67
|
+
version: '0'
|
82
68
|
- !ruby/object:Gem::Dependency
|
83
|
-
name:
|
69
|
+
name: pg
|
84
70
|
requirement: !ruby/object:Gem::Requirement
|
85
71
|
requirements:
|
86
|
-
- - "
|
72
|
+
- - ">="
|
87
73
|
- !ruby/object:Gem::Version
|
88
|
-
version: '
|
74
|
+
version: '0'
|
89
75
|
type: :development
|
90
76
|
prerelease: false
|
91
77
|
version_requirements: !ruby/object:Gem::Requirement
|
92
78
|
requirements:
|
93
|
-
- - "
|
79
|
+
- - ">="
|
94
80
|
- !ruby/object:Gem::Version
|
95
|
-
version: '
|
81
|
+
version: '0'
|
96
82
|
- !ruby/object:Gem::Dependency
|
97
83
|
name: rspec-rails
|
98
84
|
requirement: !ruby/object:Gem::Requirement
|
99
85
|
requirements:
|
100
|
-
- - "
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: 3.3.3
|
103
|
-
type: :development
|
104
|
-
prerelease: false
|
105
|
-
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
requirements:
|
107
|
-
- - "~>"
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: 3.3.3
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: pry-nav
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
requirements:
|
114
|
-
- - "~>"
|
86
|
+
- - ">="
|
115
87
|
- !ruby/object:Gem::Version
|
116
|
-
version: 0
|
88
|
+
version: '0'
|
117
89
|
type: :development
|
118
90
|
prerelease: false
|
119
91
|
version_requirements: !ruby/object:Gem::Requirement
|
120
92
|
requirements:
|
121
|
-
- - "
|
93
|
+
- - ">="
|
122
94
|
- !ruby/object:Gem::Version
|
123
|
-
version: 0
|
95
|
+
version: '0'
|
124
96
|
- !ruby/object:Gem::Dependency
|
125
|
-
name:
|
97
|
+
name: rails-controller-testing
|
126
98
|
requirement: !ruby/object:Gem::Requirement
|
127
99
|
requirements:
|
128
|
-
- - "
|
100
|
+
- - ">="
|
129
101
|
- !ruby/object:Gem::Version
|
130
|
-
version: 0
|
102
|
+
version: '0'
|
131
103
|
type: :development
|
132
104
|
prerelease: false
|
133
105
|
version_requirements: !ruby/object:Gem::Requirement
|
134
106
|
requirements:
|
135
|
-
- - "
|
107
|
+
- - ">="
|
136
108
|
- !ruby/object:Gem::Version
|
137
|
-
version: 0
|
109
|
+
version: '0'
|
138
110
|
- !ruby/object:Gem::Dependency
|
139
111
|
name: database_cleaner
|
140
112
|
requirement: !ruby/object:Gem::Requirement
|
141
113
|
requirements:
|
142
|
-
- - "
|
114
|
+
- - ">="
|
143
115
|
- !ruby/object:Gem::Version
|
144
|
-
version:
|
116
|
+
version: '0'
|
145
117
|
type: :development
|
146
118
|
prerelease: false
|
147
119
|
version_requirements: !ruby/object:Gem::Requirement
|
148
120
|
requirements:
|
149
|
-
- - "
|
121
|
+
- - ">="
|
150
122
|
- !ruby/object:Gem::Version
|
151
|
-
version:
|
123
|
+
version: '0'
|
152
124
|
description:
|
153
125
|
email:
|
154
126
|
- jps@kindlinglabs.com
|
155
127
|
- joe@avant-gardelabs.com
|
156
|
-
executables:
|
128
|
+
executables:
|
129
|
+
- console
|
130
|
+
- setup
|
157
131
|
extensions: []
|
158
132
|
extra_rdoc_files: []
|
159
133
|
files:
|
160
134
|
- ".gitignore"
|
161
135
|
- ".rspec"
|
162
|
-
- ".ruby-
|
136
|
+
- ".ruby-version"
|
163
137
|
- ".travis.yml"
|
164
138
|
- Gemfile
|
165
139
|
- LICENSE.txt
|
@@ -168,10 +142,11 @@ files:
|
|
168
142
|
- app/views/errors/any.html.erb
|
169
143
|
- bin/console
|
170
144
|
- bin/setup
|
171
|
-
- lib/generators/
|
172
|
-
- lib/generators/
|
173
|
-
- lib/generators/
|
145
|
+
- lib/generators/openstax/rescue_from/install/install_generator.rb
|
146
|
+
- lib/generators/openstax/rescue_from/install/templates/rescue_from.rb
|
147
|
+
- lib/generators/openstax/rescue_from/views/views_generator.rb
|
174
148
|
- lib/openstax/rescue_from.rb
|
149
|
+
- lib/openstax/rescue_from/background_job.rb
|
175
150
|
- lib/openstax/rescue_from/configuration.rb
|
176
151
|
- lib/openstax/rescue_from/controller.rb
|
177
152
|
- lib/openstax/rescue_from/default_exceptions.rb
|
@@ -195,7 +170,7 @@ require_paths:
|
|
195
170
|
- lib
|
196
171
|
required_ruby_version: !ruby/object:Gem::Requirement
|
197
172
|
requirements:
|
198
|
-
- - "
|
173
|
+
- - ">="
|
199
174
|
- !ruby/object:Gem::Version
|
200
175
|
version: '2.0'
|
201
176
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
data/.ruby-gemset
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
openstax-rescue-from
|
@@ -1,55 +0,0 @@
|
|
1
|
-
require 'openstax_rescue_from'
|
2
|
-
|
3
|
-
OpenStax::RescueFrom.configure do |config|
|
4
|
-
config.raise_exceptions = ![false, 'false'].include?(ENV['RAISE_EXCEPTIONS']) ||
|
5
|
-
Rails.application.config.consider_all_requests_local
|
6
|
-
|
7
|
-
# config.app_name = ENV['APP_NAME']
|
8
|
-
# config.app_env = ENV['APP_ENV']
|
9
|
-
# config.contact_name = ENV['EXCEPTION_CONTACT_NAME']
|
10
|
-
|
11
|
-
# config.notifier = ExceptionNotifier
|
12
|
-
|
13
|
-
# config.html_error_template_path = 'errors/any'
|
14
|
-
# config.html_error_template_layout_name = 'application'
|
15
|
-
|
16
|
-
# config.email_prefix = "[#{app_name}] (#{app_env}) "
|
17
|
-
# config.sender_address = ENV['EXCEPTION_SENDER']
|
18
|
-
# config.exception_recipients = ENV['EXCEPTION_RECIPIENTS']
|
19
|
-
end
|
20
|
-
|
21
|
-
# OpenStax::RescueFrom#register_exception default options:
|
22
|
-
#
|
23
|
-
# { notify: true,
|
24
|
-
# status: :internal_server_error,
|
25
|
-
# extras: ->(exception) { {} } }
|
26
|
-
#
|
27
|
-
# NOTE: Any unregistered exceptions rescued during run-time
|
28
|
-
# will be registered with RescueFrom with the above options
|
29
|
-
|
30
|
-
# OpenStax::RescueFrom.register_exception('SecurityTransgression',
|
31
|
-
# notify: false,
|
32
|
-
# status: :forbidden)
|
33
|
-
#
|
34
|
-
# OpenStax::RescueFrom.register_exception(ActiveRecord::NotFound,
|
35
|
-
# notify: false,
|
36
|
-
# status: :not_found)
|
37
|
-
#
|
38
|
-
# OpenStax::RescueFrom.register_exception('OAuth2::Error',
|
39
|
-
# notify: true,
|
40
|
-
# extras: ->(exception) {
|
41
|
-
# { headers: exception.response.headers,
|
42
|
-
# status: exception.response.status,
|
43
|
-
# body: exception.response.body }
|
44
|
-
#
|
45
|
-
# OpenStax::RescueFrom.translate_status_codes({
|
46
|
-
# forbidden: "You are not allowed to access this.",
|
47
|
-
# :not_found => "We couldn't find what you asked for.",
|
48
|
-
# })
|
49
|
-
#
|
50
|
-
# Default:
|
51
|
-
# - internal_server_error: "Sorry, #{OpenStax::RescueFrom.configuration.app_name} had some unexpected trouble with your request."
|
52
|
-
# - not_found: 'We could not find the requested information.',
|
53
|
-
# - bad_request: 'The request was unrecognized.',
|
54
|
-
# - forbidden: 'You are not allowed to do that.'
|
55
|
-
# - unprocessable_entity: 'Your browser asked for something that we cannot do.'
|