errdo 0.11.3 → 0.11.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/errdo/errors_controller.rb +1 -1
- data/app/models/errdo/exception.rb +5 -2
- data/config/routes.rb +2 -0
- data/lib/errdo/helpers/views_helper.rb +4 -0
- data/lib/errdo/logger.rb +1 -0
- data/lib/errdo/models/error_env_parser.rb +8 -4
- data/lib/errdo/notifications/slack/notification_adapter.rb +23 -8
- data/lib/errdo/version.rb +1 -1
- data/lib/errdo.rb +4 -4
- data/test/dummy/config/environments/development.rb +1 -0
- data/test/dummy/config/environments/production.rb +2 -0
- data/test/dummy/config/environments/test.rb +2 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +1967 -0
- data/test/dummy/log/test.log +146293 -0
- data/test/integrations/plugins_integration_test.rb +2 -1
- data/test/models/errdo_test.rb +6 -6
- data/test/test_helper.rb +0 -3
- data/test/tmp/config/application.rb +4 -0
- data/test/tmp/config/initializers/errdo.rb +49 -7
- metadata +4 -4
- data/test/dummy/tmp/pids/server.pid +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1c02753b228820b93c239b4e9ebc3165d28ae24
|
4
|
+
data.tar.gz: 692b5bccf41783f97e64d1a2966870f812d35c74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c597f080b1063557aeae0a7f1cb138daa6cad60495490e2cbd2a00e12db8154402043cd5a8b4f86d9b243ac7d4d66823267c6505fc4aa87c2363489520462049
|
7
|
+
data.tar.gz: 18e5d90035c81216865bef07427ceace199cdffa487b85cb7cf545481f7303db9fe550107ae83764e60c74975face2bcbb40d640ed6ad65c263985a3f3eb81da
|
@@ -4,9 +4,11 @@ module Errdo
|
|
4
4
|
def initialize(env)
|
5
5
|
user_parser = Errdo::Models::UserParser.new(env)
|
6
6
|
@env_parser = Errdo::Models::ErrorEnvParser.new(env, user_parser)
|
7
|
-
|
7
|
+
|
8
|
+
error = nil
|
9
|
+
error = create_errors(@env_parser) unless Errdo.error_name.blank?
|
8
10
|
Errdo.notify_with.each do |notifier|
|
9
|
-
notifier.notify(@env_parser)
|
11
|
+
notifier.notify(@env_parser, error: error)
|
10
12
|
end
|
11
13
|
end
|
12
14
|
|
@@ -15,6 +17,7 @@ module Errdo
|
|
15
17
|
def create_errors(parser)
|
16
18
|
error = Errdo::Error.find_or_create(parser.error_hash)
|
17
19
|
error.try(:error_occurrences).try(:create, parser.error_occurrence_hash)
|
20
|
+
return error
|
18
21
|
end
|
19
22
|
|
20
23
|
end
|
data/config/routes.rb
CHANGED
data/lib/errdo/logger.rb
CHANGED
@@ -2,7 +2,7 @@ module Errdo
|
|
2
2
|
module Models
|
3
3
|
class ErrorEnvParser
|
4
4
|
|
5
|
-
attr_accessor :
|
5
|
+
attr_accessor :exception_class_name, :exception_message, :http_method,
|
6
6
|
:host_name, :url, :backtrace, :ip, :user_agent, :referer,
|
7
7
|
:query_string, :param_values, :cookie_values, :header_values,
|
8
8
|
:experiencer_id, :experiencer_type
|
@@ -51,9 +51,13 @@ module Errdo
|
|
51
51
|
@backtrace.first if @backtrace.respond_to?(:first)
|
52
52
|
end
|
53
53
|
|
54
|
+
def user
|
55
|
+
@experiencer_type.constantize.find_by(id: @experiencer_id) if @experiencer_type && Errdo.error_name
|
56
|
+
end
|
57
|
+
|
54
58
|
private
|
55
59
|
|
56
|
-
def set_accessible_params(env, request, controller,
|
60
|
+
def set_accessible_params(env, request, controller, new_user)
|
57
61
|
@exception_class_name = env["action_dispatch.exception"].class.to_s
|
58
62
|
@exception_message = env["action_dispatch.exception"].try(:message)
|
59
63
|
@http_method = request.try(:request_method)
|
@@ -67,8 +71,8 @@ module Errdo
|
|
67
71
|
@param_values = scrubbed_params(request)
|
68
72
|
@cookie_values = request.try(:cookies)
|
69
73
|
@header_values = controller.try(:headers)
|
70
|
-
@experiencer_id =
|
71
|
-
@experiencer_type =
|
74
|
+
@experiencer_id = new_user.try(:id)
|
75
|
+
@experiencer_type = new_user.try(:class).try(:name)
|
72
76
|
end
|
73
77
|
|
74
78
|
def prepare_backtrace(env)
|
@@ -15,10 +15,10 @@ module Errdo
|
|
15
15
|
username: options[:name] || 'Errdo-bot'
|
16
16
|
end
|
17
17
|
|
18
|
-
def notify(parser)
|
19
|
-
messager = SlackMessager.new(parser)
|
18
|
+
def notify(parser, options = nil)
|
19
|
+
messager = SlackMessager.new(parser, options)
|
20
20
|
begin
|
21
|
-
@slack_notifier.ping
|
21
|
+
@slack_notifier.ping(*messager.message)
|
22
22
|
rescue => e
|
23
23
|
Rails.logger.error e
|
24
24
|
end
|
@@ -30,25 +30,40 @@ module Errdo
|
|
30
30
|
|
31
31
|
include Errdo::Helpers::ViewsHelper # For the naming of the user in the message
|
32
32
|
|
33
|
-
def initialize(parser)
|
33
|
+
def initialize(parser, options = nil)
|
34
34
|
@user = parser.user
|
35
35
|
@backtrace = parser.short_backtrace
|
36
36
|
@exception_name = parser.exception_name
|
37
37
|
@exception_message = parser.exception_message
|
38
|
+
@error = options ? options[:error] : nil
|
38
39
|
end
|
39
40
|
|
40
41
|
def message
|
41
|
-
|
42
|
+
url_helpers = Errdo::Engine.routes.url_helpers
|
43
|
+
error_url = url_helpers.error_url(@error) if @error
|
44
|
+
[exception_string, attachments:
|
45
|
+
[
|
46
|
+
title: @exception_message,
|
47
|
+
title_link: error_url,
|
48
|
+
fields: additional_fields,
|
49
|
+
color: "#36a64f"
|
50
|
+
]]
|
42
51
|
end
|
43
52
|
|
44
53
|
private
|
45
54
|
|
46
55
|
def exception_string
|
47
|
-
|
56
|
+
@exception_name || 'None'
|
48
57
|
end
|
49
58
|
|
50
|
-
def
|
51
|
-
|
59
|
+
def additional_fields
|
60
|
+
fields = [{ title: "Backtrace",
|
61
|
+
value: @backtrace.to_s }]
|
62
|
+
if @user
|
63
|
+
fields += [{ title: "User Affected",
|
64
|
+
value: user_show_string(@user) }]
|
65
|
+
end
|
66
|
+
return fields
|
52
67
|
end
|
53
68
|
|
54
69
|
end
|
data/lib/errdo/version.rb
CHANGED
data/lib/errdo.rb
CHANGED
@@ -123,14 +123,14 @@ module Errdo
|
|
123
123
|
|
124
124
|
# Logs the error to the database as a warning
|
125
125
|
def self.warn(*args)
|
126
|
-
Errdo::Logger.new('warning', *args).log
|
127
|
-
Errdo::Notifier.new(*args).notify
|
126
|
+
error = Errdo::Logger.new('warning', *args).log
|
127
|
+
Errdo::Notifier.new(*args, error: error).notify
|
128
128
|
end
|
129
129
|
|
130
130
|
# Logs the error to the database and notifies the user
|
131
131
|
def self.error(*args)
|
132
|
-
Errdo::Logger.new('error', *args).log
|
133
|
-
Errdo::Notifier.new(*args).notify
|
132
|
+
error = Errdo::Logger.new('error', *args).log
|
133
|
+
Errdo::Notifier.new(*args, error: error).notify
|
134
134
|
end
|
135
135
|
|
136
136
|
def self.setup
|
Binary file
|
data/test/dummy/db/test.sqlite3
CHANGED
Binary file
|