activeerror 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -4
- data/lib/active_error/engine.rb +13 -11
- data/lib/active_error/middleware.rb +17 -0
- data/lib/active_error/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bda7db32534497efbf3630112104606b5cfb0d4c5c99a75338d5589f9c28de48
|
4
|
+
data.tar.gz: 2082ca8e2aff144ed93c968998457c1228c9023af24f45a20f0e18070cc5fb9b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4cfa42adda5bb374631f3cb1dad4563de1ced011a4733615f9565f81c608731d1a18c146ef134a16836a819b9cf32beffffbe92aa5d11b93719a8331e51d3949
|
7
|
+
data.tar.gz: fd11b9f2a1b16bbcc0695da85940d9c4f326ca8b46e1b1aa63f0866f06d90b86bf00d7e7a74e4d8600df27db7e137f8160137fb51cb9e3f9e23f0eb8b4bc6726
|
data/README.md
CHANGED
@@ -2,15 +2,14 @@
|
|
2
2
|
|
3
3
|
One of the fundemental tools needed to take your Rails app to production is a
|
4
4
|
way to track errors that are triggered. Unfortunately, theres no free, easy,
|
5
|
-
open source way to track them for small or medium apps. Honeybadger, Sentry,
|
5
|
+
open source way to track them for small or medium apps. Honeybadger, Sentry,
|
6
6
|
and AppSignal are great, but they are are closed source. With Sentry
|
7
7
|
looking at using your data as training
|
8
8
|
data([link](https://blog.sentry.io/ai-privacy-and-terms-of-service-updates/?original_referrer=https%3A%2F%2Fsentry.io%2F))
|
9
9
|
there should be an easy open source alternative where you control the data.
|
10
10
|
|
11
|
-
ActiveError hooks into the
|
12
|
-
|
13
|
-
Rails. These third party error loggers also try to make their own fancy
|
11
|
+
ActiveError hooks into the middleware of Rails.
|
12
|
+
These third party error loggers also try to make their own fancy
|
14
13
|
backtrace and debugging view. But the one Rails developers are most comfortable
|
15
14
|
with is the one baked into Rails that we use everyday in development. So with
|
16
15
|
ActiveError, when an error gets raised it's captured and stored in the
|
data/lib/active_error/engine.rb
CHANGED
@@ -1,22 +1,24 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module ActiveError
|
4
|
-
class ErrorSubscriber
|
5
|
-
def report(exception, context:, **_opts)
|
6
|
-
return if Rails.env.local?
|
7
|
-
|
8
|
-
Captor.new(exception:, request: context[:active_error_request]).capture
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
4
|
class Engine < ::Rails::Engine
|
5
|
+
ActiveJobRequest = Struct.new(:parameters, :filtered_parameters)
|
6
|
+
|
13
7
|
isolate_namespace ActiveError
|
14
8
|
|
15
9
|
initializer "active_error.middleware" do |_app|
|
16
|
-
|
17
|
-
|
10
|
+
app.config.middleware.use ActiveError::Middleware
|
11
|
+
|
12
|
+
::ActiveJob::Base.class_eval do |base|
|
13
|
+
base.set_callback :perform, :around do |_param, block|
|
14
|
+
block.call
|
15
|
+
rescue StandardError => e
|
16
|
+
ActiveError::Captor.new(exception: e, request: ActiveJobRequest.new(
|
17
|
+
arguments, arguments
|
18
|
+
)).capture
|
19
|
+
raise e
|
20
|
+
end
|
18
21
|
end
|
19
|
-
Rails.error.subscribe(::ActiveError::ErrorSubscriber.new)
|
20
22
|
end
|
21
23
|
end
|
22
24
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ActiveError
|
4
|
+
class Middleware
|
5
|
+
def initialize(app)
|
6
|
+
@app = app
|
7
|
+
end
|
8
|
+
|
9
|
+
def call(env)
|
10
|
+
@app.call(env)
|
11
|
+
rescue Exception => exception # rubocop:disable Lint/RescueException, Naming/RescuedExceptionsVariableName
|
12
|
+
Captor.new(exception:, request: env.request).capture
|
13
|
+
|
14
|
+
raise
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/active_error/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activeerror
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Pezza
|
@@ -66,6 +66,7 @@ files:
|
|
66
66
|
- lib/active_error/exception_mock.rb
|
67
67
|
- lib/active_error/exception_mock/default.rb
|
68
68
|
- lib/active_error/exception_mock/template_error.rb
|
69
|
+
- lib/active_error/middleware.rb
|
69
70
|
- lib/active_error/renderer.rb
|
70
71
|
- lib/active_error/version.rb
|
71
72
|
- lib/activeerror.rb
|