super_exception_notifier 2.0.8 → 3.0.1

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.
Files changed (33) hide show
  1. data/{README.rdoc → README} +13 -17
  2. data/VERSION.yml +3 -3
  3. data/lib/exception_notification.rb +15 -0
  4. data/rails/init.rb +8 -12
  5. data/super_exception_notifier.gemspec +88 -0
  6. data/test/exception_notifier_helper_test.rb +2 -10
  7. data/test/exception_notifier_test.rb +2 -2
  8. data/test/exception_notify_functional_test.rb +6 -6
  9. data/test/mocks/controllers.rb +22 -15
  10. data/test/notifiable_test.rb +6 -6
  11. data/test/test_helper.rb +6 -4
  12. metadata +35 -33
  13. data/lib/exception_notifiable.rb +0 -177
  14. data/lib/exception_notifier.rb +0 -176
  15. data/lib/exception_notifier_helper.rb +0 -60
  16. data/lib/notifiable.rb +0 -92
  17. data/lib/super_exception_notifier/custom_exception_classes.rb +0 -16
  18. data/lib/super_exception_notifier/custom_exception_methods.rb +0 -50
  19. data/lib/super_exception_notifier/deprecated_methods.rb +0 -60
  20. data/lib/super_exception_notifier/git_blame.rb +0 -52
  21. data/lib/super_exception_notifier/helpful_hashes.rb +0 -66
  22. data/lib/super_exception_notifier/hooks_notifier.rb +0 -55
  23. data/lib/super_exception_notifier/notifiable_helper.rb +0 -80
  24. data/tasks/notified_task.rake +0 -15
  25. data/views/exception_notifier/_backtrace.html.erb +0 -1
  26. data/views/exception_notifier/_environment.html.erb +0 -14
  27. data/views/exception_notifier/_inspect_model.html.erb +0 -16
  28. data/views/exception_notifier/_request.html.erb +0 -8
  29. data/views/exception_notifier/_session.html.erb +0 -6
  30. data/views/exception_notifier/_title.html.erb +0 -3
  31. data/views/exception_notifier/background_exception_notification.text.plain.erb +0 -10
  32. data/views/exception_notifier/exception_notification.text.plain.erb +0 -15
  33. data/views/exception_notifier/rake_exception_notification.text.plain.erb +0 -6
@@ -1,80 +0,0 @@
1
- #Copyright (c) 2008-2009 Peter H. Boling of 9thBit LLC
2
- #Released under the MIT license
3
-
4
- module SuperExceptionNotifier
5
- module NotifiableHelper
6
- include CustomExceptionClasses
7
- include CustomExceptionMethods
8
- include HelpfulHashes
9
- include GitBlame
10
- include HooksNotifier
11
-
12
- private
13
-
14
- def get_method_name
15
- if /`(.*)'/.match(caller.first)
16
- return $1
17
- end
18
- nil
19
- end
20
-
21
- def get_exception_data
22
- deliverer = self.class.exception_data
23
- return case deliverer
24
- when nil then {}
25
- when Symbol then send(deliverer)
26
- when Proc then deliverer.call(self)
27
- end
28
- end
29
-
30
- def verbose_output(exception, status_cd, file_path, send_email, send_web_hooks, request = nil, the_blamed = nil, rejected_sections = nil)
31
- puts "[EXCEPTION] #{exception}"
32
- puts "[EXCEPTION CLASS] #{exception.class}"
33
- puts "[EXCEPTION STATUS_CD] #{status_cd}"
34
- puts "[ERROR LAYOUT] #{self.class.error_layout}" if self.class.respond_to?(:error_layout)
35
- puts "[ERROR VIEW PATH] #{ExceptionNotifier.config[:view_path]}" if !ExceptionNotifier.nil? && !ExceptionNotifier.config[:view_path].nil?
36
- puts "[ERROR FILE PATH] #{file_path.inspect}"
37
- puts "[ERROR EMAIL] #{send_email ? "YES" : "NO"}"
38
- puts "[ERROR WEB HOOKS] #{send_web_hooks ? "YES" : "NO"}"
39
- puts "[COMPAT MODE] #{ExceptionNotifierHelper::COMPAT_MODE ? "YES" : "NO"}"
40
- puts "[THE BLAMED] #{the_blamed}"
41
- puts "[SECTIONS] #{ExceptionNotifier.sections_for_email(rejected_sections, request)}"
42
- req = request ? " for request_uri=#{request.request_uri} and env=#{request.env.inspect}" : ""
43
- logger.error("render_error(#{status_cd}, #{self.class.http_status_codes[status_cd]}) invoked#{req}") if self.class.respond_to?(:http_status_codes) && !logger.nil?
44
- end
45
-
46
- def perform_exception_notify_mailing(exception, data, request = nil, the_blamed = nil, verbose = false, rejected_sections = nil)
47
- if ExceptionNotifier.config[:exception_recipients].blank?
48
- puts "[EMAIL NOTIFICATION] ExceptionNotifier.config[:exception_recipients] is blank, notification cancelled!" if verbose
49
- else
50
- class_name = self.respond_to?(:controller_name) ? self.controller_name : self.to_s
51
- method_name = self.respond_to?(:action_name) ? self.action_name : get_method_name
52
- ExceptionNotifier.deliver_exception_notification(exception, class_name, method_name,
53
- request, data, the_blamed, rejected_sections)
54
- puts "[EMAIL NOTIFICATION] Sent" if verbose
55
- end
56
- end
57
-
58
- def should_email_on_exception?(exception, status_cd = nil, verbose = false)
59
- notification_level_sends_email? && !ExceptionNotifier.config[:exception_recipients].blank? && should_notify_on_exception?(exception, status_cd, verbose)
60
- end
61
-
62
- def should_web_hook_on_exception?(exception, status_cd = nil, verbose = false)
63
- notification_level_sends_web_hooks? && !ExceptionNotifier.config[:web_hooks].blank? && should_notify_on_exception?(exception, status_cd, verbose)
64
- end
65
-
66
- # Relies on the base class to define be_silent_for_exception?
67
- def should_notify_on_exception?(exception, status_cd = nil, verbose = false)
68
- # don't notify (email or web hooks) on exceptions raised locally
69
- verbose && ExceptionNotifier.config[:skip_local_notification] && is_local? ?
70
- "[NOTIFY LOCALLY] NO" :
71
- nil
72
- return false if ExceptionNotifier.config[:skip_local_notification] && is_local?
73
- # don't notify (email or web hooks) exceptions raised that match ExceptionNotifiable.notifiable_silent_exceptions
74
- return false if self.be_silent_for_exception?(exception)
75
- return true if ExceptionNotifier.config[:notify_error_classes].include?(exception.class)
76
- return true if !status_cd.nil? && ExceptionNotifier.config[:notify_error_codes].include?(status_cd)
77
- return ExceptionNotifier.config[:notify_other_errors]
78
- end
79
- end
80
- end
@@ -1,15 +0,0 @@
1
- class NotifiedTask < Rake::TaskLib
2
- attr_accessor :name, :block
3
-
4
- def initialize(name, &block)
5
- @name = name
6
- @block = block
7
- define
8
- end
9
-
10
- def define
11
- task name do |t|
12
- notifiable { block.call }
13
- end
14
- end
15
- end
@@ -1 +0,0 @@
1
- <%= @backtrace.join "\n" %>
@@ -1,14 +0,0 @@
1
- <% if @request -%>
2
- <% max = @request.env.keys.max { |a,b| a.length <=> b.length } -%>
3
- <% @request.env.keys.sort.each do |key| -%>
4
- * <%= "%-*s: %s" % [max.length, key, filter_sensitive_post_data_from_env(key, @request.env[key].to_s.strip)] %>
5
- <% end -%>
6
- <% end -%>
7
- <% if @data -%>
8
- <% @data.each do |key, value| -%>
9
- * <%= key %>: <%= value %>
10
- <% end -%>
11
- <% end -%>
12
-
13
- * Process: <%= $$ %>
14
- * Server : <%= `hostname -s`.chomp %>
@@ -1,16 +0,0 @@
1
- <% if show_attributes -%>
2
- [attributes]
3
- <% attrs = inspect_model.attributes -%>
4
- <% max = attrs.keys.max { |a,b| a.length <=> b.length } -%>
5
- <% attrs.keys.sort.each do |attr| -%>
6
- * <%= "%*-s: %s" % [max.length, attr, object_to_yaml(attrs[attr]).gsub(/\n/, "\n ").strip] %>
7
- <% end -%>
8
- <% end -%>
9
-
10
- <% if show_instance_variables -%>
11
- [instance variables]
12
- <% inspect_model.instance_variables.sort.each do |variable| -%>
13
- <%- next if variable == "@attributes" -%>
14
- * <%= variable %>: <%= inspect_value(inspect_model.instance_variable_get(variable)) %>
15
- <% end -%>
16
- <% end -%>
@@ -1,8 +0,0 @@
1
- <% if @request -%>
2
- * URL : <%= @request.protocol %><%= @host %><%= @request.request_uri %>
3
- * Method : <%= @request.method.to_s.upcase %>
4
- * IP address: <%= @request.env['HTTP_X_REAL_IP'] ||@request.env["HTTP_X_FORWARDED_FOR"] || @request.env["REMOTE_ADDR"] %>
5
- * Parameters: <%= filter_sensitive_post_data_parameters(@request.parameters).inspect %>
6
- <% end -%>
7
- * Rails root: <%= @rails_root %>
8
-
@@ -1,6 +0,0 @@
1
- <%
2
- @request.session.instance_variable_set(:@session_id, @request.session_options[:id]) if @request.session.instance_variable_get(:@session_id).nil?
3
- @request.session.instance_variable_set(:@data, @request.session.to_hash) if @request.session.instance_variable_get(:@data).nil?
4
- %>
5
- * session id: <%= @request.session.instance_variable_get(:@session_id).inspect %>
6
- * data: <%= PP.pp(@request.session.instance_variable_get(:@data),"").gsub(/\n/, "\n ").strip %>
@@ -1,3 +0,0 @@
1
- -------------------------------
2
- <%= title.to_s.humanize %>:
3
- -------------------------------
@@ -1,10 +0,0 @@
1
- A <%= @exception.class %> occurred in <%= @controller_name %>#<%= @controller_action_name %>:
2
-
3
- <%= @exception.message %>
4
- <%= @backtrace.first %>
5
-
6
- <% if @data[:info] -%>
7
- <%=@data[:info].to_yaml%>
8
- <% end -%>
9
-
10
- <%= @sections.map { |section| render_section(section) }.join %>
@@ -1,15 +0,0 @@
1
- <% unless @request.nil? -%>
2
- <%= @request.protocol %><%= @host %><%= @request.request_uri %>
3
- <% end -%>
4
- A <%= @exception.class %> occurred in <%= @location %>:
5
- <%= @exception.message %>
6
- <%= @backtrace.first %>
7
-
8
- <% if @data[:info] -%>
9
- <%=@data[:info].to_yaml%>
10
- <% end -%>
11
-
12
- <% unless @the_blamed.nil? || @the_blamed[:author].nil? %>
13
- Git Blame: '<%=@the_blamed[:author]%>' last modified line #<%=@the_blamed[:line]%> in <%=@the_blamed[:file]%>
14
- <% end%>
15
- <%= @sections.map { |section| render_section(section) }.join %>
@@ -1,6 +0,0 @@
1
- A <%= @exception.class %> occurred in <%= @location %>:
2
-
3
- <%= @exception.message %>
4
- <%= @backtrace.first %>
5
-
6
- <%= @sections.map { |section| render_section(section) }.join %>