exception-alarm 0.1.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +4 -0
- data/README.md +3 -3
- data/lib/exception-alarm.rb +1 -1
- data/lib/exception_alarm/{notifier.rb → mailer.rb} +6 -1
- data/lib/exception_alarm/middleware.rb +2 -2
- data/lib/exception_alarm/version.rb +1 -1
- data/lib/exception_alarm/views/mailer/_environment.text.erb +7 -0
- data/lib/exception_alarm/views/mailer/_request.text.erb +4 -0
- data/lib/exception_alarm/views/mailer/_session.text.erb +2 -0
- data/lib/exception_alarm/views/mailer/alarm.text.erb +24 -0
- metadata +10 -7
- data/app/views/exception_alarm/notifier/alarm.txt.erb +0 -2
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -23,9 +23,9 @@ Add to ApplicationController before filter
|
|
23
23
|
``` ruby
|
24
24
|
class ApplicationController < ActionController::Base
|
25
25
|
before_filter do
|
26
|
-
ExceptionAlarm::
|
27
|
-
ExceptionAlarm::
|
28
|
-
ExceptionAlarm::
|
26
|
+
ExceptionAlarm::Mailer.sender = "project-name@example.com"
|
27
|
+
ExceptionAlarm::Mailer.prefix = '[ERROR-project-name]'
|
28
|
+
ExceptionAlarm::Mailer.recipients = %w[vakhov@gmail.com]
|
29
29
|
end
|
30
30
|
|
31
31
|
# ...
|
data/lib/exception-alarm.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
module ExceptionAlarm
|
2
|
-
class
|
2
|
+
class Mailer < ActionMailer::Base
|
3
|
+
self.mailer_name = 'mailer'
|
4
|
+
self.append_view_path "#{File.dirname(__FILE__)}/views"
|
5
|
+
|
3
6
|
cattr_accessor :prefix
|
4
7
|
cattr_accessor :sender
|
5
8
|
cattr_accessor :recipients
|
@@ -10,6 +13,8 @@ module ExceptionAlarm
|
|
10
13
|
def alarm(env, exception)
|
11
14
|
@env = env
|
12
15
|
@exception = exception
|
16
|
+
@kontroller = env['action_controller.instance']
|
17
|
+
@request = ActionDispatch::Request.new(env)
|
13
18
|
|
14
19
|
mail(
|
15
20
|
from: self.class.sender,
|
@@ -7,8 +7,8 @@ module ExceptionAlarm
|
|
7
7
|
def call(env)
|
8
8
|
@app.call(env)
|
9
9
|
rescue Exception => exception
|
10
|
-
if Rails.application.config.exception_alarm.enable && !ignore_exceptions.include?(exception.class.to_s) &&
|
11
|
-
|
10
|
+
if Rails.application.config.exception_alarm.enable && !ignore_exceptions.include?(exception.class.to_s) && ::ExceptionAlarm::Mailer.recipients.present?
|
11
|
+
::ExceptionAlarm::Mailer.alarm(env, exception).deliver
|
12
12
|
end
|
13
13
|
|
14
14
|
raise exception
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<% filtered_env = @request.filtered_env -%>
|
2
|
+
<% max = filtered_env.keys.map(&:size).max -%>
|
3
|
+
<% filtered_env.stringify_keys.sort.each do |k, v| -%>
|
4
|
+
* <%= raw("%-*s: %s" % [max, k, (v.is_a?(Hash) || v.is_a?(Array) ? v.inspect : v.to_s)]) %>
|
5
|
+
<% end -%>
|
6
|
+
* <%= raw("%-*s: %s" % [max, 'Process', $$]) %>
|
7
|
+
* <%= raw("%-*s: %s" % [max, 'Server', `hostname -s`.chomp]) %>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<% if @kontroller -%>
|
2
|
+
A <%= @exception.class %> occurred in <%= @kontroller.controller_name %>#<%= @kontroller.action_name %>:
|
3
|
+
<% end -%>
|
4
|
+
<%= raw @exception.backtrace.first %>
|
5
|
+
|
6
|
+
-------------------------------
|
7
|
+
: Request
|
8
|
+
-------------------------------
|
9
|
+
<%= render 'request' -%>
|
10
|
+
|
11
|
+
-------------------------------
|
12
|
+
: Session
|
13
|
+
-------------------------------
|
14
|
+
<%= render 'session' -%>
|
15
|
+
|
16
|
+
-------------------------------
|
17
|
+
: Environment
|
18
|
+
-------------------------------
|
19
|
+
<%= render 'environment' -%>
|
20
|
+
|
21
|
+
-------------------------------
|
22
|
+
: Trace
|
23
|
+
-------------------------------
|
24
|
+
<%= raw @exception.backtrace.join("\n") -%>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exception-alarm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-04-06 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &72956420 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '3.1'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *72956420
|
25
25
|
description: Send email on exception
|
26
26
|
email:
|
27
27
|
- vakhov@gmail.com
|
@@ -35,13 +35,16 @@ files:
|
|
35
35
|
- LICENSE
|
36
36
|
- README.md
|
37
37
|
- Rakefile
|
38
|
-
- app/views/exception_alarm/notifier/alarm.txt.erb
|
39
38
|
- exception-alarm.gemspec
|
40
39
|
- lib/exception-alarm.rb
|
41
40
|
- lib/exception_alarm/engine.rb
|
41
|
+
- lib/exception_alarm/mailer.rb
|
42
42
|
- lib/exception_alarm/middleware.rb
|
43
|
-
- lib/exception_alarm/notifier.rb
|
44
43
|
- lib/exception_alarm/version.rb
|
44
|
+
- lib/exception_alarm/views/mailer/_environment.text.erb
|
45
|
+
- lib/exception_alarm/views/mailer/_request.text.erb
|
46
|
+
- lib/exception_alarm/views/mailer/_session.text.erb
|
47
|
+
- lib/exception_alarm/views/mailer/alarm.text.erb
|
45
48
|
homepage: ''
|
46
49
|
licenses: []
|
47
50
|
post_install_message:
|
@@ -56,7 +59,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
56
59
|
version: '0'
|
57
60
|
segments:
|
58
61
|
- 0
|
59
|
-
hash: -
|
62
|
+
hash: -647038065
|
60
63
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
61
64
|
none: false
|
62
65
|
requirements:
|
@@ -65,7 +68,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
65
68
|
version: '0'
|
66
69
|
segments:
|
67
70
|
- 0
|
68
|
-
hash: -
|
71
|
+
hash: -647038065
|
69
72
|
requirements: []
|
70
73
|
rubyforge_project:
|
71
74
|
rubygems_version: 1.8.11
|